Summary
After context compression and the automatic background "review/update skills" pass, Hermes can leave a continuation child session visible as a separate active Desktop/TUI session. This makes one workflow appear split into multiple chats and makes it easy to continue typing into the wrong session.
I am intentionally omitting screenshots and business-specific titles/previews because the affected Desktop list contained private work content.
Environment
- Hermes Agent:
v0.16.0 (2026.6.5)
- Upstream commit reported by
hermes --version: 628780b4
- Runtime: Windows native
- UI: Hermes Desktop / TUI session list
HERMES_HOME: Windows local runtime
Observed behavior
A previous TUI session was compressed and produced a continuation child session:
- parent session:
20260610_090735_3f123b
ended_at: set
end_reason: compression
- child session:
20260611_150118_dd908b
parent_session_id: 20260610_090735_3f123b
ended_at: NULL
end_reason: NULL
At the same time, a different user-facing TUI workflow was also active/visible:
- session:
20260611_140345_6c8f1e
ended_at: NULL
end_reason: NULL
hermes sessions list --source tui surfaced both rows as recent sessions. Desktop showed them as separate recent chats, so the user-facing result looked like a session had split or crossed into another session.
The status endpoint still showed only one active session:
{"active_sessions":1,"gateway_running":true,"gateway_state":"running"}
Relevant sanitized log pattern:
agent.conversation_compression: context compression done: session=20260611_150118_dd908b ...
agent.conversation_loop: Turn ended ... session=20260611_150118_dd908b
run_agent: OpenAI client created ... thread=bg-review:...
agent.conversation_loop: conversation turn: session=20260611_150118_dd908b ... msg='Review the conversation above and update the skill library...'
agent.conversation_loop: Turn ended ... session=20260611_150118_dd908b
Expected behavior
Compression continuation and background review/skill-maintenance sessions should not appear as separate live user chats unless they are intentionally resumable branches.
Possible fixes:
- mark background-review continuation sessions ended after the background pass completes;
- hide background-review sessions from the default Desktop/TUI session list;
- project compression chains consistently to the latest user-facing session;
- distinguish resumable branch sessions from internal compression/background-maintenance sessions.
Impact
The session list can show multiple apparently active chats from different workflows. For private/business workflows, this is risky because a user can resume the wrong child session and accidentally mix instructions between unrelated tasks.
Notes
This was diagnosed from state.db, hermes/sessions/*.json, agent.log, and hermes sessions list --source tui. The issue is about session lifecycle/list projection; the model response content itself did not appear to be the root cause.
Summary
After context compression and the automatic background "review/update skills" pass, Hermes can leave a continuation child session visible as a separate active Desktop/TUI session. This makes one workflow appear split into multiple chats and makes it easy to continue typing into the wrong session.
I am intentionally omitting screenshots and business-specific titles/previews because the affected Desktop list contained private work content.
Environment
v0.16.0 (2026.6.5)hermes --version:628780b4HERMES_HOME: Windows local runtimeObserved behavior
A previous TUI session was compressed and produced a continuation child session:
20260610_090735_3f123bended_at: setend_reason:compression20260611_150118_dd908bparent_session_id:20260610_090735_3f123bended_at:NULLend_reason:NULLAt the same time, a different user-facing TUI workflow was also active/visible:
20260611_140345_6c8f1eended_at:NULLend_reason:NULLhermes sessions list --source tuisurfaced both rows as recent sessions. Desktop showed them as separate recent chats, so the user-facing result looked like a session had split or crossed into another session.The status endpoint still showed only one active session:
{"active_sessions":1,"gateway_running":true,"gateway_state":"running"}Relevant sanitized log pattern:
Expected behavior
Compression continuation and background review/skill-maintenance sessions should not appear as separate live user chats unless they are intentionally resumable branches.
Possible fixes:
Impact
The session list can show multiple apparently active chats from different workflows. For private/business workflows, this is risky because a user can resume the wrong child session and accidentally mix instructions between unrelated tasks.
Notes
This was diagnosed from
state.db,hermes/sessions/*.json,agent.log, andhermes sessions list --source tui. The issue is about session lifecycle/list projection; the model response content itself did not appear to be the root cause.