Answer develop's six questions on milestone G's contracts, so the seat definitions are written from the design
mesh/delivery merged: source.main moved to novox/hq@a1cbcfb23f69
mesh/check checking 4976caa12443 on a1cbcfb23f69

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
This commit is contained in:
2026-11-11 10:45:18 +01:00
parent 6c1e759e26
commit 4976caa124
@@ -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.