5.3.10 is about making the runtime tell the truth end to end. When an installed runtime says one version in one place and a different version in another, when doctor warns before the first expected artifact can exist, when Evolution runs without emitting its intended scores, or when startup/update summaries die in a log file, the product creates uncertainty without a real failure.
What real-machine validation still exposed after 5.3.9
By 5.3.9 the packaged runtime path was functionally healthy again: Claude MCP connected, exports worked, personal-script ownership recovered, and runtime doctor was honest about the larger runtime boundary. But a few smaller mismatches still showed up under real usage.
~/.nexo/package.json could stay on an older version even after the published npm package and version.json had moved forward successfully. nexo doctor --tier deep could report a degraded self-audit state immediately after install or update simply because self-audit-summary.json had not been produced yet. Weekly Evolution expected dimension_scores and score_evidence but its prompt never required them, so nexo_evolution_status could stay blank even after a real cycle. And update-last-summary.json was still being written without feeding any reader in the daily synthesis path.
Why the runtime metadata drift mattered
The runtime already trusted version.json first for the real version check, so the system was not broken. But stale package.json inside ~/.nexo still polluted secondary diagnostics and made the packaged runtime look less coherent than it actually was.
5.3.10 fixes that by refreshing the root runtime package.json during fresh install, migration, and same-version refresh paths. The runtime metadata under ~/.nexo now matches the package that was really installed.
Why deep doctor looked worse than reality
The self-audit check was treating the absence of self-audit-summary.json as a degraded state without first asking whether the daily self-audit was actually enabled or whether the runtime had only just been installed. On a fresh packaged machine, that turned a pending daily artifact into a warning that sounded like breakage.
5.3.10 makes that logic more honest. If self-audit automation is disabled, doctor says so. If the runtime was just installed or updated and the self-audit is configured, doctor reports that the summary is still pending instead of degrading the deep health result prematurely.
Why Evolution telemetry had gone silent
The weekly runner already knew how to persist dimension_scores and score_evidence into evolution_metrics, but the prompt contract never asked the automation backend to return those keys. The cycle could finish with analysis and proposals while leaving the score table empty.
5.3.10 restores that contract explicitly. The prompt now requires all five canonical dimension keys every time, and the status surface falls back to the objective file if the score table is still empty. That makes the operator-facing Evolution status useful again instead of failing silently.
Why startup/update summaries needed a reader
update-last-summary.json captured useful runtime events such as deferred syncs, bootstrap changes, healed personal schedules, and update errors, but nothing in the daily intelligence loop was reading it back. That is exactly the kind of low-grade write-only artifact that makes a shared-brain runtime feel less coherent over time.
5.3.10 closes that loop carefully. Daily synthesis ingests the summary only when it carries something actionable. Routine cooldown and no-op startup summaries stay silent instead of polluting the briefing.
What changes for the operator
The outcome is small but important: after a successful packaged update, the runtime metadata looks the way the runtime really is, the first deep doctor pass stops creating doubt where there is no real fault, Evolution exposes score telemetry again, and startup/update signals only surface in synthesis when they can change behavior. That matters because daily trust is built from dozens of tiny honest signals, not just from major bugfix releases.
Upgrade
Open the 5.3.10 changelog section for the exact release note. For installed users, the intended path now looks like this:
npm install -g nexo-brain@5.3.10nexo updatenexo doctor --tier deepnexo doctor --tier runtime
The important effect is not a new headline feature. It is a more trustworthy runtime: the packaged install keeps its own metadata aligned, doctor distinguishes “not run yet” from “actually unhealthy,” Evolution exposes its intended telemetry again, and operational startup/update signals stop disappearing into a write-only file.