{"repo":"NousResearch/hermes-agent","public_id":"74973","display_label":"launchd gateway restart skipped during update","summary":"These issues and PRs address a bug where a booted-out launchd gateway is silently skipped during the update process, causing the update to exit successfully with the gateway dead and deregistered. Related work also extends update planning so missed restart-phase runtimes are tracked and fail the update rather than going unnoticed.","subsystem":"hermes_cli","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":92963,"merged_at":"2026-08-25T21:10:11+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-08-25T21:10:11+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":74973,"pr_number":92902,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-23T11:45:30+00:00"},{"issue_number":74973,"pr_number":92963,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-25T21:10:11+00:00"},{"issue_number":88848,"pr_number":92902,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-08-23T11:45:30+00:00"}],"members":[{"kind":"issue","number":74973,"title":"[Bug]: macOS: hermes update silently skips the gateway restart when the launchd job is already booted out — update exits 0 with the gateway dead and deregistered","url":null,"state":"closed"},{"kind":"pr","number":75021,"title":"fix(update): restart a booted-out launchd gateway instead of skipping it (#74973)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"bee489d5638d98517942f9618b9da94abd581a8d","number":0},{"kind":"pr","value":"#92963","number":92963},{"kind":"pr","value":"#92902","number":92902},{"kind":"pr","value":"#74973","number":74973}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":92902,"title":"feat(update): planned runtimes the restart phase misses now fail the update — plan becomes the worklist (#91277 Phase 2, salvage #88949)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/gateway.py","hermes_cli/update_cmd.py","hermes_cli/update_inventory.py","tests/hermes_cli/test_plan_reconciliation_windows_live.py","tests/hermes_cli/test_restart_plan_reconciliation.py","tests/hermes_cli/test_update_inventory.py","tests/hermes_cli/test_update_launchd_fleet_restart.py","tests/hermes_cli/test_update_launchd_restart_verification.py"]},{"kind":"pr","number":92963,"title":"fix(update): booted-out launchd gateways get restarted, never silently skipped (#74973, salvage #75021)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/update_cmd.py","tests/hermes_cli/test_update_launchd_restart_verification.py","tests/hermes_cli/test_update_launchd_unloaded_gateway.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}