{"repo":"NousResearch/hermes-agent","public_id":"106682","display_label":"fleet_restart_pending marker clearing bug fixes","summary":"These items all address defects in the logic that retires or self-heals the fleet_restart_pending marker, covering cases where it was never cleared when gateways restarted outside the updater or already ran the expected SHA. The work also guards against foreign state-file writers being misread as current.","subsystem":"hermes_cli","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":111371},"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.4},"fix_edges":[{"issue_number":98588,"pr_number":111371,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":106682,"pr_number":111371,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":110420,"pr_number":111371,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":111272,"pr_number":111371,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":106682,"title":"fix(update): fleet_restart_pending marker never cleared when gateways restart outside the updater","url":null,"state":"closed"},{"kind":"pr","number":106690,"title":"fix(update): retire fleet_restart_pending when live gateways match expected_sha","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#105417","number":105417},{"kind":"pr","value":"#100249","number":100249},{"kind":"pr","value":"#105417","number":105417}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":106748,"title":"fix(update): retire fleet_restart_pending marker when live gateways match expected_sha","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#105417","number":105417}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":107139,"title":"fix(update): self-heal fleet_restart_pending marker when fleet already runs expected SHA","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"127214a66bb1","number":0},{"kind":"pr","value":"#111371","number":111371},{"kind":"pr","value":"#105417","number":105417}],"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","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","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}}