bee489d563
Port of @jeff-mettel's fix onto the post-#91378/#92902 fleet-restart shape. The current-profile restart was gated on `launchctl list <label>` exiting 0 - a booted-out job (plist present, definition deregistered: crashed helper, manual bootout, failed prior update) fails that check, so the branch silently skipped: no restart, no message, KeepAlive unable to revive a definition launchd no longer knows, update printing 'Update complete!' with the gateway down. `launchctl list` is also session-scoped and unreliable as a loaded/unloaded classifier. - _restart_launchd_gateway_after_update() (his extraction, adapted): plist-exists is the ONLY gate; launchd_restart() owns the bootout/bootstrap/kickstart ladder for every plist-present state; every failure path is loud and names the manual recovery command. The gate-error 'except: pass' (the second silent variant) now counts the label failed and tells the operator. - Success still requires the #92902 supervision verify (fresh supervised PID), composing his fix with the returned-is-not-supervised guard. - His regression suite adapted to the (restarted, failed) contract; the old 'unregistered -> left alone' pinning test FLIPPED - it pinned the bug. A/B: his suite + the flipped test red on merge-base product code (silent skip live), green at head. No macOS CI lane exists; field evidence is #74973's reproductions plus the launchctl print output shapes pinned in the suite.