From 6d52fc73029019b6631130342ef3b2bdcc607946 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Wed, 2 Sep 2026 09:52:36 -0700 Subject: [PATCH] =?UTF-8?q?docs(althing):=20operator=20ruling=20=E2=80=94?= =?UTF-8?q?=20leave=20pre-deploy=20seats=20on=20their=20old=20channel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eight of seventeen live seats were still on fifo after the 3.3.1 deploy, because a SessionStart hook cannot reach a session that was already running. Operator's call: leave them. They are reachable, mail is held at the post office regardless, and each self-corrects at its next session start; the residual is that a reaped fifo waiter goes silent until restart, which costs timeliness and never mail. Recorded with the no-unsolicited-fleet-notification directive next to it, since the tempting action here is precisely the prohibited one — audit, report the count, let the operator decide. --- docs/runbooks/althing-deploy.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) 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