diff --git a/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md b/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md index 30ff16cc..4effc640 100644 --- a/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md +++ b/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md @@ -845,6 +845,17 @@ backup holder backs up nothing, and the have says so. fingerprint, the digest, the phase and the health after the module's start window. A failed apply is loud, retried by the next change of the want or the composition, never by a clock, and fixed forward (ADR 0360 §8, ADR 0539 §9). +- **The bus module is wanted like any module; its server moves only by a put.** "The bus moves" (ADR 0539 §15, + ADR 0546 §8) means its server is replaced. So the assigner writes the bus module's want by the same rules as + every module's, and the node agent applies what that want brings (its files, its processes' bus accounts and + secrets, its tools) while it keeps the server's container as it runs. Only a want written by a put, on the + operator's warrant after the streams' snapshot, replaces the server. mesh-sdk names the resources the bus's + server holds, so the assigner and the node agent read one list; a node agent that does not know the list yet is + never sent a want for the bus module, so the node agent's hold is delivered before the assigner's change. Until + then nothing writes the bus module's process accounts, and its tools that write to the bus fail (issue 774, the + operator, 2026-11-03). How it is checked: a node agent unit test applies a bus module's new want and shows the + server's container untouched and the tools' account written; an assigner unit test writes the bus module's want + by the rules and holds the server's replacement for a put. - **Every want is owed.** The watchman mirrors every want as a pulse owed by that node's agent until its have names the want's fingerprint, so a node that does not move is a stall (ADR 0539 §19). - **A move a person must allow is judged by the node and asked by the assigner.** The node agent applies ADR 0377