Files
bullpen/lib
marfrit 3d8d28d009 doctor: enforce the orchestrator wake-set invariant instead of only writing it down (#96)
W31 listed "single-session-foreman — cannot be woken by worker replies" as an open gap.
MEASURED against the room log: 233 of 259 replies addressed to @foreman drew a foreman
post within 120 s, median 8 s. That is reply-driven waking, not busy-polling. The gap as
stated was closed on 2026-07-24 by the `.wakereplies` opt-in, three days before the run
reported it.

What is real is the residue. ORCHESTRATION.md §2 states the invariant — "any orchestrator
MUST wake on replies" — and it was written down only after a reply-deaf lurker deadlocked
a campaign. Nothing checks it. The opt-in is a bare flag file in a per-nick lurker dir,
and deploy/install.sh deliberately does not touch those, so a fresh fleet, a restored
home, or a renamed nick brings the herd up looking healthy and quietly unable to finish a
pipeline: the orchestrator ends its turn correctly and waits forever for an event the
lurker discards.

cfg.ORCHESTRATORS names the nicks that drive pipelines (configurable; "foreman" here) and
bullpen-doctor now flags any of them whose lurker lacks the flag. One `test -e` per
orchestrator, read-only. Verified both directions: silent while the flag is present, and
with it moved aside it reports @foreman REPLY-DEAF.
2026-08-02 09:51:48 +02:00
..