ADR 0160 built: both halves, and what the first roll-out taught; issues 183 (the controller's grant) and 184 (a merge blocks the receive loop)

This commit is contained in:
2026-10-01 15:23:26 +02:00
parent 64acc94de8
commit eef03f2b08
3 changed files with 101 additions and 0 deletions
@@ -103,6 +103,25 @@ ask what to listen on. This record decides exactly that.
| The console lists a stateful module on two machines once per machine, and composes no subject | the MCP conformance test |
| Live: the store's databases asked of one named machine and through the seat, after a controller release and one push, with no module rebuilt | by hand |
## Built, 2026-10-01
> **Progressive insight — 2026-10-01.** The decision stands; these are the facts of its building.
- The controller's half: mesh-controller 188 — the membership, its subject, the assignments stream
read directly, a module's account granted its own membership and nothing else of the stream, a
membership published after each push.
- The runtime's half: mesh-tools 23 — the one address derived, the membership read and followed,
exactly the issued subjects served and re-served, the derived shape with a log line until one is
issued, a seat's verbs implemented under the seat's name and never listed as the module's, the
listing carrying subjects and the console composing none. A claim may now name the verbs it
serves for its seat (mesh-controller 186), so a holder's own tools need not be the seat's.
- What the first roll-out taught: the controller's own grant did not name the assignments it issues,
so the first memberships were refused by the server and every runtime kept the derived shape —
which is exactly the fallback this record asked for, and exactly why nobody noticed
([issue 183](../04-ISSUES/183-the-controller-could-not-publish-the-memberships-it-issued/00-report.md)).
The SDK's `invokeTool` still composes a subject; it reaches a membership through the runtime's
broker, which does, so the caller-side rule is met there and not yet in the SDK's own words.
## References
- [ADR 0159](0159-a-tool-call-names-the-machine-and-a-holder-serves-its-seats-verbs.md) — extended: the same facts, issued rather than derived