NEXO 7.17.3 — standalone update no longer aborts on the Desktop-only local-presence model
Published 2026-05-11. Corrective patch release over v7.17.2.
Why this patch exists
nexo-brain@7.17.2 shipped a real regression in the public npm update path. The postinstall flow warmed every model from the local manifest with local_files_only=True, but the npm package did not bundle the Desktop local-presence GGUF snapshot. On hosts without that snapshot already cached, nexo update aborted even though the missing model was not part of the standalone Brain contract.
What changed
LocalModelSpec now carries a required flag loaded from src/local_model_manifest.json. The qwen3-0.6b-q4-local-presence entry is marked optional because it belongs to the Desktop local-presence path, not the required standalone Brain runtime.
warmup_targets() now propagates that requirement bit into strict warmup. Required Brain models — classifier, embeddings, and reranker — still fail install/update if warmup breaks. The missing Desktop-only GGUF now degrades cleanly instead of aborting the release path.
Validation
python3 -m pytest tests/test_local_models.py tests/test_model_warmup.py tests/test_nexo_brain_onboarding_cli.py -q
# 13 passed
node bin/nexo-brain.js warmup-models --postinstall
# exit 0 on the live machine, with the optional local-presence model reported as non-fatal when absent