NEXO 7.9.20 — packaged update self-heal
Published 2026-04-24. Patch release over v7.9.19.
v7.9.20 closes a real packaged-install repair gap found while updating a second Mac after v7.9.19. The code was current, but repair surfaces still assumed a source-like cron layout and some LaunchAgents could not see the managed Claude runtime from background jobs.
What is fixed
Runtime doctor repair now resolves cron sync from ~/.nexo/runtime/crons/sync.py on packaged installs, with a source-tree fallback. LaunchAgent PATH generation includes ~/.nexo/runtime/bootstrap/npm-global/bin, so Deep Sleep, Morning Agent, and other background jobs can find the managed Claude Code binary installed by client sync. Runtime root backfill now includes claude_cli.py, and Immune no longer fails because the optional legacy ~/.claude-mem/claude-mem.db is absent.
Why it matters
This is the scalability fix behind update self-heal: a fleet of packaged installs should not require manual SSH cleanup when the product already owns the runtime layout. The update path must repair product-managed drift automatically while still refusing to close business tasks or operator-owned work just to make a dashboard green.
Verification
Release validation covers targeted pytest for runtime power, doctor repair, packaged update, startup post-sync, and Immune database handling; ruff; release artifact sync; npm pack; and installed-runtime validation after publication.