fix(msg): busy window reads activity only; --busy-only (fixes #341, fixes #256) releases#341 + releases#256 (SEAMLESS-UPDATES W10), operator-ruled 2026-09-24: instance state selects WHICH INSTANCE a bare id resolves to and may require a wake; it NEVER gates a delivery window. - The AND is DELETED, not relaxed. Both hook drains (api poll's poll_drain, api worker-poll) narrowed an include-deferred poll by resting::deferred_held (Dormant|Suspended): an activity-axis flag gated on the control-axis rest record, whose events carry no activity input. deferred_held had exactly those two callers and is removed with its unit. A dormant (unwatched, possibly working) endpoint now drains its busy-window rows on its own poll. So the away notice reaches the agent WHILE it is away, and the return notice can only follow it. A suspended endpoint gets them on its first poll after waking. - --active-only is now --busy-only. --active-only and --deferred keep parsing as HIDDEN aliases, and neither is in help or reference.md. `api poll --include-deferred` and the deferred=1 column keep their spelling (adapter-facing / storage) and are documented as the busy window. NO_PERCH now says "(busy-only stays local-only)". - REQ-INST-6 AMENDED IN PLACE (doyle ruling): its title was the deleted rule word for word. It now owns the rest RECORD and its remote drive and points at REQ-DELIVERY-WINDOW-IS-ACTIVITY-AXIS-ONLY for the window. The D5a comment half is rewritten, D5b kept. wansend's remote-rest int keeps its wire legs and drops the hold asserts. - CONTEXT.md: the deferred-message gate clause is replaced by the positive statement, the active-window/active-only prose is swept, and dormant's two arms are named. Public docs: messaging, instances, and lifecycle (which carried the same hold claim). CHANGELOG Fixed + Changed. reference.md and changelog.md regenerated. - Tests: the drain units are rewritten on the new REQ (dormant: away -> peer in order, then return alone; suspended -> wake: first poll, exactly once). New flag unit (primary + two hidden aliases, help hides both). New int busy_window_axis_e2e drives the real away/return producer and the real binary and asserts ORDER: the away notice drains on a poll taken before the return notice exists. It stops the daemon its calls start via a guard that carries no session identity. The broker-stop guard rightly refuses one that does, and the first version leaked a daemon pair holding target/debug/spt.exe. active_only_never_relay_e2e's three text asserts moved with the NO_PERCH text (the negative one too, so it cannot pass vacuously). Negative control: re-adding the AND reds the int at its tagged assertion (busy_window_axis_e2e.rs:170, left 0 right 2) and the drain unit (delivery.rs:1507, left []). Co-authored by: todlando Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_014j8UXzGXXsDsTJBYYUSCTC