pbz: Chunk 30 round-three fixes — the advice could hit the wrong device
A fresh adversarial reviewer (given no knowledge of the earlier rounds) ranked one finding above the rest, correctly: the recovery command dropped the host. `pbz activate 'Sweep'` targets whatever the config resolves to, so advice printed during a `pbz save --host=<spare>` failure would have told the user to run a command against the actual LED wall. Every command a message names now carries --host, and saved-maybe-inactive targets the id rather than the name, since _resolveTarget takes the first name match and a pattern named --yes would be eaten by argv as a flag. Two claims of mine were unearned. running-unsaved asserted "(it acknowledged the resume)" but is reachable two ways, and on the frames path no such ack ever arrived — it now says "confirmed rendering" without naming which evidence. And the honesty rule's own premise, that a send returning proves the bytes left the machine, was FALSE: send() on a closed socket returns and discards. alive() now refuses on a closed or closing socket, which is what makes the rule mean anything. The reviewer also found five surviving mutants and two vacuous tests. The non-Error test threw from compile(), outside the try, so the annotator was never reached; the frames-are-proof test asserted where later assignments had already overwritten the promotion, so deleting the promotion left it green. Both rewritten to the scenario that observes them, plus tests for the double-annotation guard, run()'s side of the line-order rule, and a getter-only message — which turned out to still produce the TypeError the guard was written to prevent, since the hazard is writability rather than type. Narrowed the class header's "concurrent READS are fine": getConfig, getState, ping and samplePreview each claim frames a concurrent write is waiting for. Recorded as item 15, with item 14 for a late resume ack burning a completion-ack slot. 32 new tests, 224 total, typecheck green. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PZnUXRsLLnt2A7pR3X4Luj
T
Tarek Rached committed
bf0214e4760558f5fc7a9d7922946128b188e90c
Parent: 985673c