hermes - 💡(How to fix) Fix Persistent /goal is lost after context compression rotates session_id [4 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fixed

RAW_BUFFERClick to expand / collapse

Bug description

Persistent /goal state can disappear from the user's point of view after context compression rotates the SQLite session_id.

Goal state is stored in state_meta under goal:<session_id>. During context compression Hermes ends the old session, creates a continuation session with a new id, and continues the same logical conversation. The goal state was not migrated as part of that session split, so a GoalManager created for the continuation session sees no active goal.

Steps to reproduce

  1. Start a session and set a standing goal with /goal.
  2. Let the conversation hit manual or automatic context compression.
  3. Compression creates a continuation session with a new session_id.
  4. Ask for /goal status or let the goal loop resume in the new session.

Expected behavior

The active or paused goal follows the logical conversation across compression-created continuation sessions.

Actual behavior

The goal remains under goal:<old_session_id>, while the continuation session reads goal:<new_session_id> and appears to have no active goal.

Proposed fix

  • Add an explicit goal migration helper that copies unfinished goal state to the continuation session.
  • Mark the old goal row as cleared/audit-only after migration to avoid two active rows.
  • Invoke migration from the context compression session-rotation path.
  • Add a regression test that sets a goal, migrates it across a compression boundary, and verifies the continuation session still sees the active goal.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The active or paused goal follows the logical conversation across compression-created continuation sessions.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix Persistent /goal is lost after context compression rotates session_id [4 pull requests]