{"repo":"NousResearch/hermes-agent","public_id":"120205","display_label":"Windows state.db holder detection fix","summary":"A bug where `foreign_state_db_holders()` silently returns an empty list on Windows, causing maintenance preflight checks to be skipped. Multiple fix approaches are explored, including psutil scanning and Restart Manager integration.","subsystem":null,"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":121423},"resolution":{"state":"resolved","by":"pr-121423"},"freshness":{"state":"verified","last_verified_at":"2026-09-24T12:38:25+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":120205,"pr_number":121423,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":120205,"title":"Windows: foreign_state_db_holders() returns [] so the state.db write-guard / optimize-storage preflight is a silent no-op","url":null,"state":"closed"},{"kind":"pr","number":120235,"title":"fix(state): scan Windows state.db holders instead of assuming none","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"a8a549ebb4","number":0},{"kind":"pr","value":"#121423","number":121423},{"kind":"pr","value":"#120205","number":120205},{"kind":"pr","value":"#120241","number":120241}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":120241,"title":"fix(state): guard Windows maintenance with Restart Manager","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"b006ae2dcf6b210d3db3dfbe78c5aac040044644","number":0},{"kind":"commit","value":"8d57bfc2d7df6b117f577f459366241a06ab2c4c","number":0},{"kind":"pr","value":"#120205","number":120205},{"kind":"pr","value":"#120235","number":120235},{"kind":"pr","value":"#120241","number":120241},{"kind":"pr","value":"#120241","number":120241},{"kind":"pr","value":"#120235","number":120235},{"kind":"pr","value":"#120244","number":120244},{"kind":"pr","value":"#120205","number":120205},{"kind":"pr","value":"#120241","number":120241},{"kind":"pr","value":"#120235","number":120235},{"kind":"pr","value":"#120244","number":120244},{"kind":"pr","value":"#120205","number":120205},{"kind":"pr","value":"#120235","number":120235},{"kind":"pr","value":"#120244","number":120244}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":120244,"title":"fix(state): scan Windows for state.db holders through psutil","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"a8a549ebb4","number":0},{"kind":"pr","value":"#121423","number":121423},{"kind":"pr","value":"#120205","number":120205}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":120292,"title":"fix(state): enumerate state.db holders on Windows via psutil scan","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"a8a549ebb4","number":0},{"kind":"pr","value":"#121423","number":121423},{"kind":"pr","value":"#120205","number":120205}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":121423,"title":"fix(state): detect Windows state.db holders before maintenance","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","hermes_cli/doctor_platform.py","hermes_cli/sessions_cmd_journal_mode.py","hermes_cli/subcommands/sessions.py","hermes_state_holders.py","tests/e2e/core/windows/test_state_db_guard.py","tests/hermes_cli/test_doctor_journal_modes.py","tests/hermes_cli/test_sessions_set_journal_mode.py","tests/hermes_state/test_state_db_holders.py","tests/hermes_state/test_state_db_holders_windows_live.py","website/docs/user-guide/sessions.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}