From c3a80c8b34b563c07ef9404b3fd0ed715164338b Mon Sep 17 00:00:00 2001 From: Jonathan Borduas Date: Fri, 21 Aug 2026 19:57:43 +0100 Subject: [PATCH] merge-authority: rule 4 fails when INITIATING too, and TEAMLEAD has no reachable row TEAMLEAD (pane uds:/tmp/cc-socks/3482.sock, ListAgents row DEV4 [889bf9]). The file already records that a recipient cannot verify a TEAMLEAD message. Measured with ARCHITECT from two ListAgents views: a sender cannot address one either. TEAMLEAD has three rows, all Remote Control, none of them this pane, and zero interactive rows. Records the identification method: the listing excludes the caller, so the DEV4 row this pane cannot see is its own. Neither view resolves it; the pair does. Also records what still works -- replying by socket, or initiating with NAME [ref] -- and that a bare name is now unsafe for seven roles. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01B1HzE38NGQojr3FtUnR1JX --- docs/MERGE-AUTHORITY.md | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/MERGE-AUTHORITY.md b/docs/MERGE-AUTHORITY.md index 72acd47..c6710d5 100644 --- a/docs/MERGE-AUTHORITY.md +++ b/docs/MERGE-AUTHORITY.md @@ -65,6 +65,50 @@ the name resolves to nothing in the only registry a pane can read. The rule is n `"You are DEV4."` Content settles which pane is which (DEV3 measured 119 `DEV3 → TEAMLEAD` and 270 `TEAMLEAD →` inside that transcript); **no identifier does.** +⇒ **AMENDED 18:55Z — RULE 4 FAILS IN THE OTHER DIRECTION TOO, AND THAT HALF IS WORSE.** + +The amendments below record that a recipient **cannot verify** a TEAMLEAD message. Measured +2026-08-21 18:55Z with ARCHITECT, from two `ListAgents` views: a sender **cannot address one +either.** + +``` +TEAMLEAD rows in the peer listing: 3, ALL Remote Control + TEAMLEAD [31bbca] idle · TEAMLEAD auto-wake [036ea4] offline + TEAMLEAD auto-wake idle resume [809ae2] idle +TEAMLEAD interactive rows: 0 ⛔ none of the three is the pane holding the grant +``` + +⇒ **A pane that needs the merge authority on a cold start cannot reach it from the listing at +all.** ⚠ Not ambiguous — *absent*. The three rows carrying the name are other sessions. + +★ **How the holder was identified, and the method is worth more than the fact.** The listing +**excludes the caller**, so: + +``` +ARCHITECT sees DEV4 [889bf9] AND DEV4 [71abb0] — cannot tell which is which +this pane sees DEV4 [71abb0] only — the ABSENT row is mine +⇒ [889bf9] is the holder. Neither view resolves it; the PAIR does. +``` + +⛔ **An absence you can PREDICT is evidence; an absence you cannot is nothing.** The exclusion is +systematic, which is the only reason the inference holds. + +### ⇒ What still works, and it is not the name + +``` +REPLYING copy the uds:/tmp/cc-socks/.sock from an incoming `from=` stamp. + Arrives with the message; cannot be resolved wrong. ✅ SAFE +INITIATING `NAME [ref]` from a FRESH ListAgents — the ref disambiguates. ✅ SAFE +INITIATING a bare NAME — ⛔ UNSAFE: seven roles now carry multiple rows + (DEV4×3, DEV1/DEV2/DEV3/DEV5/DX/DEVOPS ×2), and IMPOSSIBLE for + TEAMLEAD, which has no interactive row to resolve to. +``` + +⚠ **Nothing misrouted today despite seven ambiguous names**, because every send used a ref or a +socket. ⇒ The defect bites on **cold starts only** — and the one role a cold start most needs is +the one it cannot reach. *(#301, #426 — DEV5 reported this and could not be reproduced at the +time; it reproduces now.)* + ⇒ **AMENDED AGAIN 06:25Z — and this is a better account than the one above.** A session bootstrapped as TEAMLEAD **did** exist in this project, and it stopped: