# NousResearch/hermes-agent · Preserve pending messages during shutdown or FTS failure

## Open now

- Nothing open on GitHub.

These issues and pull requests address data loss scenarios where pending or in-flight messages are discarded during shutdown or when full-text search corruption occurs. The work focuses on persisting or retaining unrecoverable messages before clearing internal buffers.

## TL;DR

- 10 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 4 merged PR(s), 5 PR(s) closed without merging.
- A fix was merged to main in PR #73331. Verify it addresses your case.
- **Recommended:** read PR #73331 (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: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- 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

- #72680: \[Bug\] Gateway _pending_messages.clear() discards unrecoverable messages on shutdown - FTS corruption data loss

## Prior & competing PRs

- **#73331: fix(gateway): flush pending messages to disk before shutdown clear (#72680)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `gateway/platforms/base.py`, `gateway/run.py`, `gateway/shutdown_flush.py`, `tests/gateway/test_shutdown_flush.py`
- **#82633: fix(gateway): make session identity durable so chat continuity survives crashes and restarts**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `gateway/session.py`, `hermes_state.py`, `tests/gateway/test_session_continuity_82616.py`
- **#82718: fix(gateway): spool pending-queue overflow to disk instead of dropping messages**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `gateway/session.py`, `gateway/shutdown_flush.py`, `tests/gateway/test_pending_queue_spool.py`
- **#82719: fix(state): keep canonical writes available when FTS is corrupt (#78182)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `hermes_state.py`, `hermes_state_common.py`, `hermes_state_schema.py`, `hermes_state_search.py`, `tests/state/test_fts_runtime_rebuild.py`
- **#72704: fix(gateway): persist transcript retries across restarts**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`
- **#72732: fix(state): keep canonical writes available when FTS is corrupt**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#82719`, `#78182`, `#82633`, `#82718`, `#78182`
- **#73020: fix(gateway): flush pending messages to disk before shutdown clear (#72680)**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `#73331`
- **#73171: Fix #72680: preserve unpersisted pending messages before shutdown clear (data loss)**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`
- **#73400: Fix #72680 (retargeted per #73171 review): preserve agent._session_messages on shutdown flush failure**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`

## Fix status

- Merged to main in PR #73331 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-08-09`.
- Subsystem: `gateway`
