NEXO 7.11.7 — Runtime doctor goes green again
Published 2026-04-28. Patch release over v7.11.6 — the remaining debt was no longer a broken runtime, but runtime diagnostics that were still reporting old or intentional state as if it were live failure.
What was still wrong after the last release
After the 7.11.6 tester-bug pass, the live install still showed yellow or red in nexo doctor --tier runtime for reasons that no longer matched real runtime breakage. The remaining problems were diagnostic drift:
evolutionfreshness could still warn even when the product contract disabled evolution.- Historical conditioned-file drift could stay visible long after open conditioned protocol debt had already been drained.
- Cancelled tasks still reduced
change_logcoverage. - Successful headless zero-usage zero-cost runs still degraded automation telemetry coverage.
- Recent in-flight cron rows could look stale even while watchdog considered them healthy.
Runtime doctor now reflects live state instead of old residue
src/doctor/providers/runtime.py now distinguishes live failure from historical or intentional state:
- disabled
evolutionno longer trips cron freshness, - historical conditioned-file drift heals once open conditioned debt is zero,
- cancelled tasks no longer lower
change_logcoverage, - successful headless zero-usage zero-cost runs are excluded from automation telemetry denominators, and
- recent in-flight cron runs stay healthy instead of showing stale.
The point of this patch is not to hide runtime failure. It is the opposite: keep nexo doctor trustworthy by only warning when the live runtime is actually in trouble.
Runner health now trusts supervisor behavior
src/scripts/runner-health-check.py also had one real bug and one scoring problem:
- supervisor
SIGTERM 143reloads were being counted as failures, which produced falsemorning-agentandfollowup-runnerwarnings, and - the live script could crash because some runtime DB calls returned tuple-shaped rows while the patch path assumed
sqlite3.Row.
v7.11.7 treats those 143 supervisor interrupts as benign and supports both row shapes, so the script now matches the real runtime path instead of only the test harness.
Result
The live source-runtime smoke for handle_doctor(tier='runtime', output='json') returns overall_status: healthy. In other words: the runtime tier is green again after the backlog cleanup, and it stays green for the right reasons.
Validation
pytest -q tests/test_doctor.py tests/test_runner_health_check.py
104 passed
Full changelog entry → · src/doctor/providers/runtime.py · src/scripts/runner-health-check.py