NEXO 7.15.1 — runtime audit cleanup and morning briefing locks
Published 2026-05-07. Patch release over v7.15.0 — closes deploy and runtime gaps found after the shared Brain/Desktop audit.
Self-audit drains real backlog volume
The daily self-audit no longer processes only five repeated or loose clusters per pass. Prevention and formalization loops now use a shared batch limit of 50, with a regression test pinning every relevant cap.
Hook history is bounded on update and during use
hook_runs retention now compares numeric timestamps and trims old rows plus excess history. The update migration applies the same cleanup so existing installations converge without manual database work.
Codex startup reads stop looking like drift
Normal pre-startup reads of NEXO calibration and project atlas files are ignored by runtime discipline checks. Real untracked work remains visible, but healthy Codex bootstraps stop creating false diagnostic noise.
Email and morning automations use product-level routing
The email monitor now selects its automation tier from message complexity instead of treating every email as high effort. Morning briefings use an atomic lock by local date and recipient, so scheduler and daemon paths cannot race into duplicate sends.
Validation
python3 -m pytest -q
python3 -m py_compile src/hook_observability.py src/db/_schema.py src/doctor/providers/runtime.py src/script_registry.py src/cli.py src/scripts/nexo-email-monitor.py src/scripts/nexo-morning-agent.py src/scripts/nexo-daily-self-audit.py
python3 scripts/verify_release_readiness.py