{"repo":"NousResearch/hermes-agent","public_id":"75629","display_label":"SQLite connection close-then-untrack ordering fixes","summary":"Multiple fixes addressing a race/ordering bug where SQLite connections were untracked before close succeeded, leaving guards in an incorrect state. Changes enforce that untracking only happens after a successful close.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":75883,"merged_at":"2026-08-01T06:18:13+00:00"},"resolution":{"state":"resolved","by":"pr-75883"},"freshness":{"state":"verified","last_verified_at":"2026-08-01T06:18:13+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":73823,"pr_number":75883,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-01T06:18:13+00:00"},{"issue_number":75629,"pr_number":75883,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-01T06:18:13+00:00"}],"members":[{"kind":"issue","number":75629,"title":"[Bug]: sqlite_safe_read untracks a connection before closing it, so a failed close leaves the byte-probe guard believing nothing is live","url":null,"state":"closed"},{"kind":"pr","number":75699,"title":"fix(cli): untrack sqlite connections only after close succeeds","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#75883","number":75883},{"kind":"pr","value":"#75629","number":75629}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":75709,"title":"fix(sqlite): close connection before untracking on failure (#75629)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#75699","number":75699}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":75883,"title":"fix(state): four session-state fixes — safe close tracking, flush-cursor class fix, row-retry, usage-PK healer","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/context_compressor.py","agent/turn_finalizer.py","contributors/emails/[redacted:email]","contributors/emails/[redacted:email]","hermes_cli/sqlite_safe_read.py","hermes_state.py","hermes_state_schema.py","tests/agent/test_micro_compaction.py","tests/agent/test_turn_finalizer_final_response_persistence.py","tests/run_agent/test_identity_flush.py","tests/state/test_no_more_rows_retry.py","tests/state/test_session_model_usage_pk_heal.py","tests/test_sqlite_lock_safe_inspection.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}