mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
A mid-stream steer persists an interrupted-turn checkpoint so the model knows its reply was cut off. That scaffolding — "[This response was interrupted by a user correction.]" and the "Visible response before the interruption:" header — was written straight into message content, so every reload painted the raw machinery as an assistant bubble (and merged it into the preceding tool-call bubble). Steered transcripts became unreadable. Reuse the existing display/replay split instead of inventing new surface: - Carry the scaffolded form in the server-only api_content sidecar (the exact bytes replayed to the provider), keep content the user's/agent's real words. - When nothing reached the screen there is no clean form, so mark the row display_kind=hidden — replayed to the model, dropped by every transcript surface, exactly like compaction-reference rows. - Honor display_kind=hidden in the gateway's _history_to_messages projection (it only sniffed the [System: convention), so the checkpoint can't leak through the live/resume path to the TUI/CLI either. The model still receives the full interrupted context on the wire; the transcript shows the partial reply and the user's correction. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| _stdin_recovery.py | ||
| compute_host.py | ||
| entry.py | ||
| event_publisher.py | ||
| git_probe.py | ||
| host_supervisor.py | ||
| loop_noise.py | ||
| project_tree.py | ||
| render.py | ||
| server.py | ||
| slash_worker.py | ||
| synthetic_turn.py | ||
| transport.py | ||
| turn_marker.py | ||
| ws.py | ||