diff --git a/docs/runbooks/althing-deploy.md b/docs/runbooks/althing-deploy.md index b7946d8..53ca13d 100644 --- a/docs/runbooks/althing-deploy.md +++ b/docs/runbooks/althing-deploy.md @@ -157,6 +157,29 @@ The 2026-09-01 lesson was *compare the hook list, not the version string*. This is the same lesson one turn deeper: here the hook list was identical too, and only the file contents moved. +## A seat already running when the plugin lands never auto-declares — leave it + +The SessionStart hook fires at session start and nowhere else, so any session +that was already running when a plugin deploy landed keeps its old channel +until it restarts. After the 3.3.1 deploy that was **eight of seventeen live +seats**, all still on `fifo`. + +**Operator ruling 2026-09-02: leave them.** They are reachable now, the post +office holds mail regardless, and each self-corrects at its next session start. +The residual exposure is that a fifo waiter is what Claude Code 2.1.257 reaps — +one seat was reaped three times in a morning — and a reap converts a healthy +seat into a silent one until the next restart. That costs timeliness, never +mail. + +⚠ **Do not mass-message the affected seats.** Standing operator directive: no +unsolicited fleet notification, ever, unless asked. Direct correspondence with +a counterparty about work in hand is fine; sweeping the handle list is not. +Audit it, report the count, and let him decide — as he did here. + +The one-liner, for a seat that asks or an operator who wants one moved: + + althing-route declare --discover-pid + ## ⚠ The `cc` channel is an undocumented interface, taken deliberately From 3.3.0 a Claude Code seat is poked over its own message socket