{"repo":"NousResearch/hermes-agent","public_id":"98588","display_label":"Fleet restart pending flag false positive fixes","summary":"These issues and pull requests address cases where the system incorrectly reports that gateways may still be serving pre-update modules after a restart has already occurred. The work focuses on correctly discharging or skipping the fleet restart pending state when gateways are verified to be serving the expected version.","subsystem":"hermes_cli","counts":{"members":4,"open_issues":1,"open_issues_distinct":1,"open_prs":0,"closed_issues":0,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":111371,"merged_at":"2026-09-15T11:06:09+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-15T11:06:09+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":98588,"pr_number":111371,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-15T11:06:09+00:00"},{"issue_number":106682,"pr_number":111371,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-15T11:06:09+00:00"},{"issue_number":110420,"pr_number":111371,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-15T11:06:09+00:00"},{"issue_number":111272,"pr_number":111371,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-15T11:06:09+00:00"}],"members":[{"kind":"issue","number":98588,"title":"False positive 'gateways may still be serving pre-update modules' after launchd respawn","url":null,"state":"open"},{"kind":"pr","number":98612,"title":"fix(update): skip fleet restart when gateways already match current checkout","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"8130274b37","number":0},{"kind":"pr","value":"#111371","number":111371},{"kind":"pr","value":"#98588","number":98588},{"kind":"pr","value":"#109600","number":109600}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":105417,"title":"fix(update): discharge fleet_restart_pending when the fleet provably serves expected_sha","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"127214a66bb1","number":0},{"kind":"pr","value":"#111371","number":111371}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":111371,"title":"fix(update): fleet_restart_pending settles on a verified gateway serving the pulled sha; foreign state-file writers never read as current (#111272, #110420, salvage #110426 #105417)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/back1992@users.noreply.github.com","hermes_cli/update_cmd_fleet.py","hermes_cli/update_receipt.py","tests/gateway/test_control_socket.py","tests/hermes_cli/test_fleet_matrix_down_state.py","tests/hermes_cli/test_update_fleet_restart_pending.py","tests/hermes_cli/test_update_receipt.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}