# NousResearch/hermes-agent · Session reset fails to clear compression state

## Open now

- Nothing open on GitHub.

Multiple bugs and proposed fixes around ContextCompressor not fully resetting per-session state—including summary text, turn counters, and failure cooldown flags—when /clear, /new, or session reset is triggered. Several parallel fix attempts address the same family of stale-state issues.

## TL;DR

- 9 member(s): 0 open issue(s), 3 closed issue(s), 0 open PR(s), 2 merged PR(s), 4 PR(s) closed without merging.
- A fix was merged to main in PR #3102. Verify it addresses your case.
- **Recommended:** read PR #3102 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-3102`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.20`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #2635: \[Bug\]: /clear and /new leave stale compression summary and turn counter across sessions
- #15547: \[Bug\]: _summary_failure_cooldown_until not reset on /new or /reset — compression skipped silently in new session
- #16067: \[Bug\]:  ContextCompressor.on_session_reset() fails to reset _summary_failure_cooldown_until, causing compression summary to be silently skipped in new sessions

## Prior & competing PRs

- **#3102: fix(session): clear compressor summary and turn counter on /clear and /new**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `run_agent.py`, `tests/test_session_reset_fix.py`
- **#16152: fix(compressor): reset cooldown and model-fallback flag on session reset (#16067)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#15549`, `#15549`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#19622: fix(compressor): reset _summary_failure_cooldown_until on session reset**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `agent/context_compressor.py`
  - fix hunks:
  - `agent/context_compressor.py`

    ```diff
    @@ -344,6 +344,7 @@ def on_session_reset(self) -> None:
             self._last_aux_model_failure_model = None
             self._last_compression_savings_pct = 100.0
             self._ineffective_compression_count = 0
    +        self._summary_failure_cooldown_until = 0.0  # transient errors must not block a fresh session
     
         def update_model(
             self,
    ```
- **#2640: fix(session): clear compressor summary and turn counter on /clear and /new**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#3102`
- **#2723: fix(agent): reset turn counter and compression summary on /clear or /new**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `b374f52063788311629c02dcf4c9f2d98a3c2d42`, `#3102`, `#2635`
- **#15548: fix(compressor): reset _summary_failure_cooldown_until in on_session_reset()**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#19622`

## Fix status

- Merged to main in PR #3102 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-05-04`.
- Subsystem: `agent`
