{"repo":"NousResearch/hermes-agent","public_id":"93064","display_label":"Non-destructive state.db repair safety fixes","summary":"A cluster of bugs and fixes addressing how automatic repair of state.db handles errors, ensuring canonical data is not destroyed during or after an unsuccessful repair attempt. Multiple incremental fixes refine the repair boundary and retry behavior.","subsystem":"hermes_cli/data","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":93353},"resolution":{"state":"resolved","by":"pr-93353"},"freshness":{"state":"verified","last_verified_at":"2026-08-24T01:25:12+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":93064,"pr_number":93353,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":93088,"pr_number":93353,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":93064,"title":"[Bug]: state.db automatic repair can destroy canonical data before proving recovery","url":null,"state":"closed"},{"kind":"pr","number":87409,"title":"fix(state): a failed schema repair must not destroy the database","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#93353","number":93353},{"kind":"pr","value":"#93268","number":93268}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":93260,"title":"fix(state): complete non-destructive repair boundary","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#87409","number":87409}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":93268,"title":"fix(state): make automatic repair non-destructive","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"650cf3348f8b3912e09da43b8ab96c62d88de2df","number":0},{"kind":"commit","value":"53390e28404b7f2ef3cc9281e2f63f6ff18ae0b8","number":0},{"kind":"commit","value":"53390e28404b7f2ef3cc9281e2f63f6ff18ae0b8","number":0},{"kind":"pr","value":"#87409","number":87409},{"kind":"pr","value":"#87409","number":87409},{"kind":"pr","value":"#93268","number":93268}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":93275,"title":"fix(state): repair malformed databases on isolated candidates","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#93353","number":93353},{"kind":"pr","value":"#93268","number":93268}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":93353,"title":"fix(state): failed state.db repair no longer destroys canonical data; gateway retries failed SessionDB opens (#93064, #93088)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["gateway/readiness.py","gateway/run.py","gateway/session.py","gateway/session_db_recovery.py","gateway/status.py","hermes_state.py","tests/gateway/test_readiness.py","tests/gateway/test_session_db_recovery.py","tests/test_state_db_repair_non_destructive.py","tests/test_state_db_write_durability.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}