NEXO 7.12.2 — automation routing now stays on the motor
Published 2026-04-30. Patch release over v7.12.1 — closes the remaining legacy paths that were still hardcoding or persisting model routing outside the resonance engine.
Legacy task profiles stop deciding model and effort
src/agent_runner.py no longer lets task_profile prefill backend, model, or reasoning effort before resonance resolution. In parallel, src/client_preferences.py now normalizes persisted automation_task_profiles back to empty routing fields, so an old schedule.json cannot keep acting as a silent second source of truth for automation model selection.
Email monitor now matches Deep Sleep and morning-agent
src/scripts/nexo-email-monitor.py stops passing and persisting its private automation_task_profile path. The email daemon now resolves exactly like the clean callers already did: caller id -> active backend -> resonance tier mapping -> concrete (model, effort).
Personal helpers stop injecting a stale default model
src/scripts/nexo_personal_automation.py no longer injects resolve_user_model() into every short text run. Personal scripts now leave model empty unless the operator explicitly overrides it, so their routing is driven by caller and optional tier instead of a helper-side default.
Runtime updates now scrub the last stale email override automatically
src/auto_update.py now removes the retired automation_task_profile field from legacy email runtime config during update. Existing installs therefore converge on the same caller-driven flow without manual cleanup.
Result
Email handling, personal text automation, and updated runtimes all converge on the same routing contract already used by Deep Sleep and morning-agent: caller/tier expresses intent, the selected backend comes from runtime preferences, and the motor resolves the concrete model and effort.
Validation
pytest -q tests/test_client_preferences.py tests/test_nexo_personal_automation.py tests/test_agent_runner.py tests/test_auto_update_cleanup.py tests/test_email_accounts.py tests/test_email_monitor_checkpoints.py tests/test_email_monitor_parser.py tests/test_nexo_agent_run_tier_flag.py
70 passed
Full changelog entry → · src/agent_runner.py · src/scripts/nexo-email-monitor.py · src/scripts/nexo_personal_automation.py