{"repo":"NousResearch/hermes-agent","public_id":"106667","display_label":"state.db header and FTS damage recovery handling","summary":"These items address scenarios where state.db becomes damaged—particularly page-1 header corruption from mid-write OOM kills and FTS index damage—and improve recovery, repair, and salvage paths to handle such cases rather than refusing the file outright.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":108130,"merged_at":"2026-09-11T13:37:28+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-11T13:37:28+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":56815,"pr_number":108130,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T13:37:28+00:00"},{"issue_number":88587,"pr_number":108130,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T13:37:28+00:00"},{"issue_number":96591,"pr_number":108130,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T13:37:28+00:00"},{"issue_number":97794,"pr_number":108130,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-11T13:37:28+00:00"},{"issue_number":103647,"pr_number":108130,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T13:37:28+00:00"},{"issue_number":103840,"pr_number":108130,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T13:37:28+00:00"},{"issue_number":106393,"pr_number":108130,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T13:37:28+00:00"},{"issue_number":106667,"pr_number":108130,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-11T13:37:28+00:00"}],"members":[{"kind":"issue","number":106667,"title":"[Bug]: state.db page-1 header damage (OOM kill mid-write) is unrecoverable — `sessions recover --allow-partial` refuses the file outright","url":null,"state":"closed"},{"kind":"pr","number":102808,"title":"fix(sessions): salvage header-damaged state.db in the lost_and_found lane","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"04dd80a977","number":0},{"kind":"pr","value":"#108130","number":108130}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":108130,"title":"state.db FTS damage no longer kills turns; doctor/repair/recover handle real incident shapes (#97794, #88587, #100227, #103840, #106667, #102240, #98050, #103647, #96591, #105887; salvage #97843 #88604 #56824 #91413 #102808 #103657 #106890 #103321)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/turn_explainers.py","contributors/emails/91889514+jangomango76@users.noreply.github.com","contributors/emails/[redacted:email]","contributors/emails/[redacted:email]","contributors/emails/[redacted:email]","gateway/run_notifications.py","hermes_cli/console_engine.py","hermes_cli/doctor_state.py","hermes_cli/session_lost_and_found.py","hermes_cli/session_recovery.py","hermes_cli/sessions_cmd.py","hermes_cli/web_routers/_common.py","hermes_cli/web_routers/analytics.py","hermes_cli/web_server_sessions.py","hermes_constants.py","hermes_state_errors.py","hermes_state_fts.py","hermes_state_repair.py","hermes_state_schema.py","hermes_state_search.py","tests/hermes_cli/test_doctor_structural_corruption.py","tests/hermes_cli/test_session_recovery.py","tests/hermes_cli/test_session_recovery_lost_and_found.py","tests/hermes_cli/test_sessions_repair_check_only_exit.py","tests/hermes_cli/test_web_analytics_corrupt_store.py","tests/hermes_state/test_state_db_corrupt_quarantine.py","tests/run_agent/test_corruption_recovery_guidance.py","tests/run_agent/test_turn_completion_explainer.py","tests/state/test_fts_index_fail_open.py","tests/state/test_fts_orphan_shadow_repair.py","tests/test_fts_cjk_bigram.py","tests/test_state_db_fts_segment_collision_probe.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}