Skip to content

Compression/background review continuation remains visible as a separate active Desktop session #44045

@IvanSolis1989

Description

@IvanSolis1989

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/gatewayGateway runner, session dispatch, deliverycomp/tuiTerminal UI (ui-tui/ + tui_gateway/)type/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions