hermes-agent/acp_adapter
Brooklyn Nicholson f726090d48 feat(sessions): name a session the moment it starts
Titling fired on the first response, so a session sat unnamed for the whole
opening turn - p50 151s, p90 1212s across real sessions, because a turn is
tool calls, not one round-trip. A turn that failed or was interrupted never
got a title at all. Four surfaces each carried their own copy of the call.

Move it into the shared turn prologue and split it in two: a deterministic
title derived from the user's opening message, written inline before the
model runs, then one small-model call that upgrades it. The response is
constrained to a JSON object so there is no preamble to strip, and control
wrappers are stripped rather than refused, so a slash command titles as
what the user asked for instead of the command itself.
2026-08-08 17:07:21 -05:00
..
__init__.py
…
__main__.py
…
auth.py
…
edit_approval.py
…
entry.py fix(security): redact terminal exception results and ACP stderr logs (#77484) 2026-08-08 04:19:49 -07:00
events.py
…
permissions.py fix(approval): classify CLI/TUI approval timeouts separately from explicit denials 2026-08-02 20:21:59 -07:00
provenance.py
…
server.py feat(sessions): name a session the moment it starts 2026-08-08 17:07:21 -05:00
session.py fix(state): finish the #80216 bug class — archive-preserving rewrites at the two remaining sibling sites 2026-08-07 14:42:32 +05:30
tools.py fix(code-exec): expose truncated stdout metadata 2026-07-16 04:25:19 -07:00