From 4976caa12443645e10a6799ebbff1eb0de47e90e Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 10:45:18 +0100 Subject: [PATCH] Answer develop's six questions on milestone G's contracts, so the seat definitions are written from the design Develop met verbs and events in mesh-contracts whose callers, classes, states or bodies no line named: the bus module's acting verbs, the node-engine's thirteen verbs, the keeper's findings-views, the grants part's fill events, two answers and three field forms. Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- .../47-milestones/G-9-prepare-answers.md | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/03-DESIGN/01-to-be/47-milestones/G-9-prepare-answers.md b/03-DESIGN/01-to-be/47-milestones/G-9-prepare-answers.md index c1d89c82..ecd1ebb8 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-9-prepare-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-9-prepare-answers.md @@ -16,6 +16,7 @@ decisions: - "ADR 0596" - "ADR 0595" - "ADR 0564" + - "ADR 0563" - "ADR 0363" --- @@ -55,8 +56,8 @@ line says so.* checked: unit (definition reader), a bare name refused, both prefixed forms accepted. - §393 **The node-engine's eleven verbs name today's callers.** The eleven verbs of the seat `node-engine` that name no `callers` on main get, in their definition, the callers the node-engine's compiled callers table names for each - on main, written in §392's forms, and that table goes from the node-engine's code: the definition is the one - source (§68). Why: the design's choice (Q-H8). How it is checked: unit (definition reader), each of the eleven names + on main, written in §392's forms, or their class's default where the table names none (§447), and that table goes + from the node-engine's code: the definition is the one source (§68). Why: the design's choice (Q-H8). How it is checked: unit (definition reader), each of the eleven names its callers; the code review finds no callers table in the node-engine. - §394 **The callers of G's new trusted acts.** `mesh-catalog`'s `register`, `policy`, `watch` and `unwatch`, and `mesh-delivery`'s `recovery`, are of class `act`: the operator and sessions; `registrations` is a `read`. @@ -352,3 +353,36 @@ line says so.* manifest validator holds it to that reader's words at G's heads. Why: readers first (ADR 0667 §4). How it is checked: unit (manifest validator), a row refusing a node-engine manifest with a word the older reader refuses; whole (node-engine of the version before), it composes from a manifest by digest written by G's indexer. + +### From develop (2026-11-11) + +- §446 **`mesh-broker`'s acting verbs are the bus module's own.** The seat `mesh-broker`'s `create` and `apply` name + the callers `module:nats`, the bus module's own process alone; `recreate` and `drop` are of class `warrant`, on the + operator's warrant with the approval mark, their callers `module:nats`. This amends §336's reading of "the bus + module's own process only" and "the bus module's process, on the operator's warrant". Why: develop question D-1, + 2026-11-11; ADR 0595 §4 has `recreate` and `drop` on a person's word. How it is checked: unit (definition reader), + the four verbs' callers and classes; the grants part's table test, a call from any other module refused. +- §447 **The node-engine's verbs and their callers.** The node-engine's compiled callers table on main + (`internal/link/handacts.go`, `SeatListCallers`) names two verbs: `seat-list` and `seat-list-again`, each called by + any person, the tool runner standing for a session, and the healers; their definitions name `persons`, `sessions` + and `healers`, which amends §204 for the node-engine's `seat-list-again`. The eleven verbs absent from it take their + class's default (§391): `judge-directories`, `setuid-search`, `root-free`, `acts`, `packages`, `composition`, + `compose-candidate` and `manifest-reads` are of class `read`; `compose` of class `act`; `hand-over` and + `access-act` of class `warrant`, performed only on the operator's warrant (ADR 0563 §3). Why: develop question D-2, + 2026-11-11; the classes are the design's choice from what each verb does on main. How it is checked: unit + (definition reader), each of the thirteen verbs' class and callers; the code review finds no callers table in the + node-engine. +- §448 **The keeper's `findings-views` is a state of its seat.** The seat `mesh-conditions`' definition declares + `findings-views` among its `states`, beside `conditions` (§388). Why: develop question D-3, 2026-11-11. How it is + checked: the seat's fixtures. +- §449 **The grants part's fill events say what `mesh-wants`' say.** The seat `mesh-grants`' events `filling` and `room` + carry the same body as `mesh-wants`' fill events: `store`, `bytes`, `cap` and `at` (§181, §331). Why: develop + question D-4, 2026-11-11. How it is checked: the seat's fixtures, against `mesh-wants`'. +- §450 **`ask-again` and `aside` answer.** `operator-channel`'s `ask-again` (§394) takes `key`, the ask's, and answers + `state`, the ask's state after it, or `error`; `node-backup`'s `aside` (§405) answers `aside`, the name the data was + set aside under, or `error`. Why: develop question D-5, 2026-11-11. How it is checked: the seats' fixtures. +- §451 **The forms of `owner`, `waiting-on` and a catch-up.** A finding's `owner` and `waiting-on` (§434, §439) are each + a string: a person or a session as who@node, or a seat's name. A restore point's catch-up (§406) is `{tool, + arguments}`: `tool` an address as the mesh MCP server names one, `arguments` an object. Why: develop question D-6, + 2026-11-11. How it is checked: unit (mesh-conditions' contract, node-backup's contract), each form read and another + refused. -- 2.54.0