Merge pull request 'Design 47 milestone G: answers to develop's first questions (callers of the bus module's acts, the node-engine's verbs, small body forms)' (#544) from design/47-G-develop-answers into main

This commit was merged in pull request #544.
This commit is contained in:
2026-11-11 09:46:41 +00:00
@@ -16,6 +16,7 @@ decisions:
- "ADR 0596" - "ADR 0596"
- "ADR 0595" - "ADR 0595"
- "ADR 0564" - "ADR 0564"
- "ADR 0563"
- "ADR 0363" - "ADR 0363"
--- ---
@@ -55,8 +56,8 @@ line says so.*
checked: unit (definition reader), a bare name refused, both prefixed forms accepted. 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 - §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 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 on main, written in §392's forms, or their class's default where the table names none (§447), and that table goes
source (§68). Why: the design's choice (Q-H8). How it is checked: unit (definition reader), each of the eleven names 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. 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 - §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`. `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 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; 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. 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.