{"repo":"NousResearch/hermes-agent","public_id":"101409","display_label":"Session recovery column mapping bug and fixes","summary":"A bug where session recovery maps salvaged 'lost_and_found' cells by declared column order rather than physical column names, causing shifted field values. The members cover the bug report and several related fix attempts addressing column mapping and verification status of mis-mapped salvage data.","subsystem":null,"counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":101665},"resolution":{"state":"resolved","by":"pr-101984"},"freshness":{"state":"verified","last_verified_at":"2026-09-09T12:58:58+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":101409,"pr_number":101665,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":101409,"pr_number":101984,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":101409,"title":"[Bug]: sessions recover --allow-partial maps lost_and_found cells onto declared column order, not physical order — every session gets started_at=0 and shifted fields on upgraded DBs","url":null,"state":"closed"},{"kind":"pr","number":101423,"title":"fix(cli): flag mis-mapped lost_and_found salvage as not verified","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#101665","number":101665},{"kind":"pr","value":"#101409","number":101409}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":101665,"title":"fix(recovery): never report a mis-mapped lost_and_found salvage as verified (salvage #101423)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/session_lost_and_found.py","hermes_cli/session_recovery.py","tests/hermes_cli/test_session_recovery_lost_and_found.py"]},{"kind":"pr","number":101723,"title":"fix(sessions): map lost_and_found cells by physical column names","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"58facc4c2a","number":0},{"kind":"pr","value":"#101984","number":101984},{"kind":"pr","value":"#101665","number":101665},{"kind":"pr","value":"#101984","number":101984},{"kind":"pr","value":"#101409","number":101409}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":101984,"title":"Session recovery maps salvaged cells by the store's real column layout (#101409, supersedes #101723)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/session_lost_and_found.py","hermes_cli/session_recovery.py","hermes_cli/session_schema_history.py","tests/hermes_cli/test_session_recovery_lost_and_found.py","tests/hermes_cli/test_session_schema_history.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}