Merge pull request 'Design 47 milestone G: develop answers D-7 to D-10, and design 25's types wording' (#545) from design/47-G-develop-answers-2 into main

This commit was merged in pull request #545.
This commit is contained in:
2026-11-11 09:56:58 +00:00
2 changed files with 21 additions and 3 deletions
@@ -53,7 +53,7 @@ choice, to the bus module's. Each choice below says so.
subjects, while the bus module sends, and the grants part needs, mesh-sdk's membership binding: `local` (the local
name), `storage`, `template`, `stream` and `subject` (a stream's, and a ledger's history's subject), `bucket`,
`object-store`, and for a ledger `history`, `state`, `indexes` (each index's bucket by its name), `snapshot` and
`types` (which the bus module's events leave empty; the grants part copies them from `manifest-accepted`). The
`types`, which `created` and `recreated` carry and only `dropped` clears (corrected 2026-11-11, develop question D-11 of design 47's milestone G: an earlier wording had the bus module's events leave them empty). The
definition's `Binding` takes exactly those fields, with those names and forms, so `created`, `recreated` and
`list`'s `binding` carry one form, the generated contract decodes what the bus module sends, and no byte changes
on the wire; the fields design 47 G §399 adds come on top of it. Why: the design's choice following this line's
@@ -181,8 +181,9 @@ line says so.*
- §414 **The build seats' state is `detected-steps`.** The state §326 names `steps` is `detected-steps`, apart from
today's step keys `steps`. This amends §326. Why: the design's choice (C5, D13). How it is checked: whole (Go build
module), as §326.
- §415 **Kinds on the stream `check`, and a recovery's steps.** A step ask is the kind `check.step`, a run on request's
`check.run`; a recovery's steps are `delivery.step`, which the runner may publish (§86). Why: the design's choice
- §415 **Kinds on the stream `check`, and a recovery's steps.** A step ask is the kind `step` on the stream `check`,
its subject `check.step`; a run on request's is `run`, subject `check.run`; a recovery's steps are `step` on the
stream `delivery`, subject `delivery.step`, which the runner may publish (§86; §455). Why: the design's choice
(D5, C6). How it is checked: whole (runner, Go build module), a recovery's step is taken from `delivery` first.
- §416 **A step ask carries the kept results.** The runner's step ask carries the kept results by package digest
(§25), so a build seat runs only the packages without one. Why: the design's choice (C7). How it is checked: whole
@@ -386,3 +387,20 @@ line says so.*
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.
- §452 **The seat generator emits the body types; sending is mesh-sdk's.** For a definition's `bodies` (§439) the seat
generator emits only their types, in Go and TypeScript, and each event's subject function; the sending (the state
key, the event and the one-minute resend of §383) is mesh-sdk's `go/views` writer and its TypeScript twin, which
name no seat. This amends §439's "the writers are generated". Why: develop question D-7, 2026-11-11. How it is
checked: unit (seat generator), a definition's `bodies` yields types and subject functions and no sending code;
unit (mesh-sdk's writer, both languages), a body sent with the subject handed in.
- §453 **The reader release reads `needs-approval`.** §89's and §409's words the reader release reads include the
manifest word `needs-approval` and a verb's `needs-approval` in a seat's definition (design 46). Why: develop
question D-8, 2026-11-11. How it is checked: unit (the release's reader), both read.
- §454 **`bodies` is a map, referenced as `defs` is.** A definition's `bodies` is a map of a name to a schema; a
reference `#/bodies/<Name>` resolves as `#/defs/<Name>` does, and the reader release reads it (§409). Why: develop
question D-9, 2026-11-11. How it is checked: unit (definition reader), a reference into `bodies` resolved.
- §455 **An accepted kind's name and stream.** An accepted kind has a plain lower-case name (`step`, `run`) and a field
`stream`, `check` or `delivery`; its subject is `<stream>.<kind>`, and one kind name may ride both streams: the build
seats accept `step` on `check` and on `delivery`, and `run` on `check` (§22, §206). The reader release reads
`stream` (§409). This amends §415. Why: develop question D-10, 2026-11-11. How it is checked: unit (definition
reader), `step` on both streams accepted, a dotted kind name refused.