{"repo":"NousResearch/hermes-agent","public_id":"101093","display_label":"SessionDB corruption quarantine and shutdown safety","summary":"These items address a bug where a structurally corrupt state.db could have WAL checkpoint data written to wrong page numbers, and introduce quarantining of the corrupt SessionDB handle to prevent further damage, along with quiescing the thread pool before closing state.db at shutdown.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":101118,"merged_at":"2026-09-02T15:13:08+00:00"},"resolution":{"state":"resolved","by":"pr-101118"},"freshness":{"state":"verified","last_verified_at":"2026-09-02T15:13:08+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":101093,"pr_number":101118,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-02T15:13:08+00:00"},{"issue_number":101093,"pr_number":101224,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-02T11:27:22+00:00"}],"members":[{"kind":"issue","number":101093,"title":"[Bug]: close-time WAL checkpoint on a structurally corrupt state.db wrote 15 pages to wrong page numbers (page 1 <- FTS trigram leaf)","url":null,"state":"closed"},{"kind":"pr","number":101095,"title":"fix(state): quarantine SessionDB handle after structural corruption (no retry, no close-time checkpoint)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#101224","number":101224},{"kind":"pr","value":"#101093","number":101093}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":101118,"title":"fix(gateway): quiesce the thread pool before closing state.db at shutdown","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["gateway/run.py","tests/gateway/test_shutdown_executor_quiesce.py"]},{"kind":"pr","number":101224,"title":"fix(state): quarantine SessionDB handle after structural corruption (salvage of #101095)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","docs/state-db-recovery.md","gateway/session.py","hermes_state.py","run_agent.py","tests/gateway/test_session_db_corrupt_fallback.py","tests/hermes_state/test_state_db_corrupt_quarantine.py","tests/run_agent/test_flush_diverts_on_corrupt_state_db.py","tests/run_agent/test_turn_completion_explainer.py","tests/state/test_fts_runtime_rebuild.py","tests/test_state_db_notadb_fail_closed.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}