NEXO 7.1.6 — core schedules become a real product surface
Published 2026-04-21. Patch over v7.1.5.
The 7.1.5 line fixed real maintenance-path drift, but one product gap was still open: structural core crons had no dedicated cadence contract even though the coordinated Desktop product already needed one. This patch closes that gap directly in Brain, wires the same contract into Desktop, and realigns the shipped synthesis launchagent template with the runtime manifest again.
What changed
src/core_schedule_controls.py now owns cadence overrides for non-toggleable structural core crons, with persistence in ~/.nexo/personal/config/schedule-overrides.json. The new CLI surface (nexo core-schedules list|status|schedule) and matching MCP/plugin handlers expose the same contract to Desktop and other clients. Product-facing automations such as email-monitor, followup-runner, and morning-agent stay on the existing Automations surface instead of being mixed into this structural schedule layer.
Why it matters
Structural jobs like watchdog, immune, backup, deep-sleep, or synthesis should remain active, but operators still need a safe way to tune cadence per machine. A dedicated contract is different from a raw cron editor: some services stay fixed, some are Desktop-read-only by policy, interval bounds are clamped, and the runtime re-syncs after a change so the live scheduler and the stored override stop drifting apart.
Release hygiene
This patch also closes the documentation drift that had crept into the shipped com.nexo.synthesis.plist template and its README row. The live manifest has been daily at 06:00; the template/docs now say the same thing again, and a regression test keeps that alignment from slipping quietly in a future release.
Verification
The coordinated Brain line was validated with the full Python suite green (1860 passed, 3 skipped, 1 xfailed, 5 xpassed) plus the public release-readiness validator after the repo and website surfaces were refreshed.