NEXO 7.1.1 — packaged updater hotfix
Published 2026-04-20. Hotfix over v7.1.0.
The 7.1.0 line closed the post-F0.6 runtime contract, but a real packaged install still exposed one more updater edge: the runtime launcher resolves code under ~/.nexo/core, and the updater was still willing to treat that path as a mutable source tree. Combined with F0.6 compatibility shims such as db, cognitive, skills-core, root Python module links, and script/plugin shims, that could break nexo update with FileExistsError or same-file copy collisions.
Fix
src/auto_update.py now distinguishes packaged installs from true source-linked runtimes. A packaged runtime only re-enters source-sync mode when version.json.source explicitly points at a real repo. The copy/restore path is also shim-aware, so symlinks and root compatibility files are removed explicitly before replay.
Impact
Packaged installs update cleanly again. Source-linked installs keep working too, because the same shim-aware copy logic now handles F0.6 compatibility links safely during sync and rollback.
Verification
The failure was reproduced against Francisco’s live runtime before the fix and then re-run after the patch. The corrected runtime now completes both the source-linked sync path and the installed ~/.nexo/bin/nexo update --json --no-clis path successfully.