5.3.8 is about making the packaged runtime receive everything the package really ships. If a release adds a new root Python module, an upgraded install should not keep running an incomplete runtime tree just because the migration step still depends on a stale hard-coded list.
What the real-machine validation exposed
5.3.7 closed the packaged happy path and added explicit nexo export / nexo import commands. But validating the release on the actual Mac that uses NEXO every day surfaced a new failure immediately: after nexo update, nexo export still crashed because user_data_portability.py never made it into the live runtime under ~/.nexo.
Why it happened
The npm tarball already contained the new portability module. The problem was the installer-side migration path for existing packaged installs: it copied only a manual allowlist of top-level runtime files from src/. That meant a release could be technically published correctly while the upgraded runtime silently stayed incomplete.
What 5.3.8 changes in the migration path
The packaged installer now discovers top-level runtime Python modules dynamically instead of depending only on that allowlist. New root modules from src/ get copied into ~/.nexo automatically during the update path, so the live runtime no longer drifts behind the published package whenever a new command surface is introduced.
What this means for operator continuity
The portability commands introduced in 5.3.7 now become true packaged-runtime features instead of package-only features. nexo export and nexo import remain the explicit continuity surface, but now they also work on the upgraded live install without requiring a hidden manual file repair.
Why this hotfix matters
Trust is not just about passing CI or publishing npm successfully. It is about whether the upgraded runtime on a real machine actually contains the product surfaces the release says it contains. 5.3.8 exists because that boundary still mattered after 5.3.7, and because packaged users should not have to debug missing root modules after a normal update.
Upgrade
Open the 5.3.8 changelog section for the exact release note. For installed users, the intended path now looks like this:
npm install -g nexo-brain@5.3.8nexo updatenexo exportnexo doctor
If you want to move or safeguard the operator side explicitly, the continuity commands are the same:
nexo exportnexo import /path/to/nexo-user-data-*.tar.gz
The difference is that the live runtime now receives the new root modules those commands depend on. That makes the packaged lifecycle match the product story users are actually asked to trust.