NEXO 7.17.2 — temp-buffer guards, stale briefing recovery, Codex hooks config

Published 2026-05-11. Patch release over v7.17.1.

Why this patch exists

This release is the Brain half of the coordinated Desktop 0.32.57 release. The goal is not a new public feature; it is tighter operational safety around the automation paths that Desktop bundles and exercises during normal installs and updates.

What changed

email-monitor now explicitly guards its suffixed /tmp/nexo-* draft buffers before writing or editing them. The prompt names /tmp/nexo-reply-UID.txt, /tmp/nexo-quote-UID.txt, and /tmp/nexo-thread-UID.txt, making temporary reply material part of the same write-safety model as repo files.

morning-agent now handles interrupted and stale briefing sends deterministically. SIGTERM/SIGINT mark the active claim failed before exit, stale in_progress rows are failed and retried in-band, and the CLI timeout stays below the supervisor ceiling so one hung run cannot hold the daily briefing slot indefinitely.

Codex managed config now writes the current [features].hooks = true flag and removes the retired codex_hooks key during sync.

Validation

python3 -m pytest tests/test_core_prompts.py tests/test_core_automation_productization.py tests/test_runner_guard_path_extraction.py -q
# 56 passed

python3 -m pytest tests/test_client_sync.py -q
# 29 passed

python3 -m pytest tests/test_doctor.py -x
# 108 passed

Full changelog entry → · Previous v7.17.1 release