NEXO 7.9.21 — LaunchAgent repair race hardening
Published 2026-04-24. Patch release over v7.9.20.
v7.9.21 closes the installed-runtime gap found while validating v7.9.20 on a live Mac. The product had synced the correct LaunchAgent plist, but a follow-up repair could still call launchctl bootstrap while macOS considered the job already loaded, producing the generic Bootstrap failed: 5 error.
What is fixed
LaunchAgent reload now boots out jobs by label and plist path, then bootstraps the expected plist. If macOS still reports an already-loaded race, NEXO verifies that launchd is actually serving the expected plist before treating the repair as successful. If modern bootstrap fails for a real reason, the updater falls back to legacy launchctl load -w and reports the concrete failure.
Why it matters
This is the fleet-safety layer behind self-healing updates. A customer install should not need manual launchd cleanup just because a previous sync already loaded the correct job. At the same time, NEXO must not hide real failures by blindly accepting any bootstrap error.
Verification
Regression coverage includes runtime power LaunchAgent reload behavior, doctor repair, and update reload tests. Release validation also runs release artifact sync before publication.