From 315cd7ec24bec594bd2503d993a038ee5cf0c971 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:35:54 +0100 Subject: [PATCH 01/23] Answer A-44: snapshot-remove's answer, and chunks in the seat reader Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 7c63f466..5547c1e0 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -165,3 +165,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". `.views.` family is followed by `Reader.Follow`, the follower's `Ask` set after (`Adopt` is for a seat's events); and the tool runner's held writer is given its JetStream, the writer's own defaults publishing and listening, so `bus.Conn` gains no publish method. +- **A-44** (§681, §691; principle 7) `snapshot-remove` answers the one acting form of §691 (exactly one of `accepted` with + the act's id, `busy` with the running act's id, or `error` with why), and records its caller as `by` from the proved + caller (`by-caller`), as every acting verb does. mesh-sdk's seat definition reader gains the verb field `chunks` + (§681) in the same change, with the bootstrap copies of `mesh-broker` laid again byte for byte. From 6818f61ce05087f5e749eed2a5bf74db4c73559b Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:37:07 +0100 Subject: [PATCH 02/23] Answer A-45: the bus module's bundle answers mesh-broker's verbs, the keeper does the work Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 5547c1e0..fa7fe896 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -169,3 +169,9 @@ names the principle that settles it, and is cited as "design 47 G A-n". the act's id, `busy` with the running act's id, or `error` with why), and records its caller as `by` from the proved caller (`by-caller`), as every acting verb does. mesh-sdk's seat definition reader gains the verb field `chunks` (§681) in the same change, with the bootstrap copies of `mesh-broker` laid again byte for byte. +- **A-45** (§681, ADR 0675; principle 7 and the standing rule that a process answers no call, mesh-sdk 1171/AC3) The bus + module answers the seat `mesh-broker`'s verbs through its tools bundle, as every bundle answers a seat verb + (`SeatAnswer`, the proved caller from the runtime), and sends a snapshot's chunks and hears their acks from there + (`SeatPublish`, its subscription); the keeper's process does the work that needs the bus and the files (taking, + restoring, removing), handed over and answered through the bus module's own `requests` record, as the bundle hands + the keeper its requests today. Where §681 says "the keeper's process serves", read "the bus module serves". From d50a593d68d8741196fcace7a2da1396bf5300c5 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:37:27 +0100 Subject: [PATCH 03/23] Answer A-46: the manifest versions come from builder_versions now Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index fa7fe896..94141c57 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -175,3 +175,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". (`SeatPublish`, its subscription); the keeper's process does the work that needs the bus and the files (taking, restoring, removing), handed over and answered through the bus module's own `requests` record, as the bundle hands the keeper its requests today. Where §681 says "the keeper's process serves", read "the bus module serves". +- **A-46** (§368, §372, §411; principle 7) The `version` G's change writes into each manifest is read once now from the + same source §372 fills from: the highest `published` version over the module's artifacts in the builder's + `versions` (`builder_versions`), as its MAJOR.MINOR (mesh-sdk `0.1`), and `0.1` for a module with none published. + The developer reads it through `builder_versions` and writes it into every manifest of every repository in the + group, one commit per repository, listing the values in the commit. From da5c034928814c35256a97f91798631b7ff8738b Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:39:04 +0100 Subject: [PATCH 04/23] Answer A-47: the node-engine's entry reads and kept entries Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 94141c57..820327c5 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -180,3 +180,9 @@ names the principle that settles it, and is cited as "design 47 G A-n". `versions` (`builder_versions`), as its MAJOR.MINOR (mesh-sdk `0.1`), and `0.1` for a module with none published. The developer reads it through `builder_versions` and writes it into every manifest of every repository in the group, one commit per repository, listing the values in the commit. +- **A-47** (§421, §683, §698, ADR 0593 §6; principle 7) The node-engine reads by fingerprint only (§421), so it follows + no branch: it uses the shared follower's entry cache alone (`Entries`, A-5, A-15) over its own `entry` calls on its + link session. It keeps the entries and wants of §683 in its `composed-` bucket, keys `entry.` (the + entry as `entry` answers it) and `want.` (the want as `wanted` says it), beside the composition. Its other + users of `compose/frombus` keep that reader until their own lines move them; only the node-engine's own reads of the + indexer's and builder's states go in this change. From a8c596c270cee83f981b2c2c43d180ce86685145 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:39:19 +0100 Subject: [PATCH 05/23] Answer A-48: the assigner's outside waits, ask, release and rule Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 820327c5..50be45d5 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -186,3 +186,10 @@ names the principle that settles it, and is cited as "design 47 G A-n". entry as `entry` answers it) and `want.` (the want as `wanted` says it), beside the composition. Its other users of `compose/frombus` keep that reader until their own lines move them; only the node-engine's own reads of the indexer's and builder's states go in this change. +- **A-48** (§706, §276; principle 7, one way per part) The assigner's outside waits: a state `waits`, declared in the + same form as the assigner's other states, key `..`, read by `assigner_waits` and written by + the process and by `assigner_release`; the ask goes the way the assigner asks everything, through its state `asks` + as a new kind `outside` (key `outside...`, options go on and count as failed), its answer + read as the others are; `assigner_release` with `how` releases an outside wait and without it ends a put as today; + a want held for M's own network says `RuleNotHeld` with words naming the open `machine..network`. As the + developer proposed on mesh-delivery feat/47-G-outside5. From 7e9ed3abf3022d332e1bc76fac0083fed18830ca Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:39:33 +0100 Subject: [PATCH 06/23] Answer A-49: the session bound, its end at the channel's close, and mesh/capabilities Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 50be45d5..889bf7f4 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -193,3 +193,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". read as the others are; `assigner_release` with `how` releases an outside wait and without it ends a put as today; a want held for M's own network says `RuleNotHeld` with words naming the open `machine..network`. As the developer proposed on mesh-delivery feat/47-G-outside5. +- **A-49** (§518, §576; principle 7) A put or get session's bound is the call's bound the runner already uses, + `launch.CallTimeout` (30 seconds), counted from its first chunk; a session also ends when its bundle's channel closes + (the child's exit), as §518 says. The runner answers `mesh/capabilities` with `{words}` (§576), so a bundle's + capability check passes. From 5216099fe49b550a73cb02ae721e1de769d4d14e Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:41:04 +0100 Subject: [PATCH 07/23] Answer A-50 and A-51: the node-engine's references by digest, the grants part's four finding kinds Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 889bf7f4..b64c23e3 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -197,3 +197,10 @@ names the principle that settles it, and is cited as "design 47 G A-n". `launch.CallTimeout` (30 seconds), counted from its first chunk; a session also ends when its bundle's channel closes (the child's exit), as §518 says. The runner answers `mesh/capabilities` with `{words}` (§576), so a bundle's capability check passes. +- **A-50** (§421, §379, §466; principle 7) The node-engine makes each artifact's reference from the want's part digest + in the form the store is already addressed by, `artifact-store:////blobs/`, and the rest + of the resolved manifest (languages, launchers, template texts) from the entry and the parts fetched by digest; its + read of the builder's done key goes. +- **A-51** (§388; principle 7) The grants part moves to the writer only the four kinds §388 names (`view-waits`, + `first-view-unanswered`, `first-view-empty`, `binding-unlisted`), through the held writer of a process (A-29, A-40) + with the foundation stream form of §529; its other conditions stay as they are. From 85b1a9f317e585debfb2e2a9ae1768fc4c4cc04c Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:44:10 +0100 Subject: [PATCH 08/23] Answer A-52: the grants part's view-waits is its reader's Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index b64c23e3..b2631c62 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -204,3 +204,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-51** (§388; principle 7) The grants part moves to the writer only the four kinds §388 names (`view-waits`, `first-view-unanswered`, `first-view-empty`, `binding-unlisted`), through the held writer of a process (A-29, A-40) with the foundation stream form of §529; its other conditions stay as they are. +- **A-52** (§200, §388, §614, §684, A-26; principle 7) The grants part's `view-waits` is the one its reader raises for the + catalog half views the branch follower adopts (A-5): the part waits on the catalog half of the revision it composes + for, through those views, and writes no `view-waits` of its own. From 7ee9271a3b55b48090cf50b4a03bfd1bc2d444f6 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:44:24 +0100 Subject: [PATCH 09/23] Answer A-53: a snapshot's record outlives no file and ages out with it Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index b2631c62..77509097 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -207,3 +207,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-52** (§200, §388, §614, §684, A-26; principle 7) The grants part's `view-waits` is the one its reader raises for the catalog half views the branch follower adopts (A-5): the part waits on the catalog half of the revision it composes for, through those views, and writes no `view-waits` of its own. +- **A-53** (§681, ADR 0675; principles 3 and 7) A snapshot's record never ages out before its file: the bus module's + `requests` state keeps its records 91 days (one more than `snapshot-keep-days`), and the keeper removes a snapshot's + record together with its file at expiry, so no file is left without a record and no record without its file. From 927ff5184256e2ecf58df9ad7d3d66d0d9493bde Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:45:11 +0100 Subject: [PATCH 10/23] Answer A-54 to A-56: distribution's old stream name, the builder's setting, mesh TS packages in the locks check Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 77509097..7d935351 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -210,3 +210,11 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-53** (§681, ADR 0675; principles 3 and 7) A snapshot's record never ages out before its file: the bus module's `requests` state keeps its records 91 days (one more than `snapshot-keep-days`), and the keeper removes a snapshot's record together with its file at expiry, so no file is left without a record and no record without its file. +- **A-54** (§584, ADR 0363; principle 8) Distribution's old-section stream takes the old form's name beside + `-findings`: `distribution-events`, never the mesh's own `events`. +- **A-55** (§672, ADR 0348 §5; principle 7) The builder's `toolchain-wait-minutes` reaches it the way the mesh fills a + part's settings, as mesh-conditions reads its own (the runtime's settings read at start, the manifest marking it + `runtime`), never through the process's environment. +- **A-56** (ADR 0573 §2, §4; principle 5, everything ships the same way) The locks check treats every `@novox/mesh-*` + package as it treats the SDK's, since the builder builds a module against the latest published version of each mesh + package as it does for Go; the order between the contracts' publish and gitea's build is the delivery plan's. From ac217628a14f9527a429a0d6c2a7548274cede37 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:45:25 +0100 Subject: [PATCH 11/23] Answer A-57: the builder's package-published, whole, with its branch and source Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 7d935351..dda442e5 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -218,3 +218,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-56** (ADR 0573 §2, §4; principle 5, everything ships the same way) The locks check treats every `@novox/mesh-*` package as it treats the SDK's, since the builder builds a module against the latest published version of each mesh package as it does for Go; the order between the contracts' publish and gitea's build is the delivery plan's. +- **A-57** (§466, §52, §334, §349, §371; principle 7) BL1 is the whole `package-published` emission, built after BL5's + watched-branch half: the builder says it per artifact when it hears the registry seat's `published`, carrying + `resolved` and `toolchain` from the step's result (`dependencies`, §673), `branch` the watched branch of the catalog + revision whose entry the build came from, and `source` that revision, both kept on the build's reservation from the + candidate it built. From 5b54cfdad14099437d369904df74863bf4204071 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:45:57 +0100 Subject: [PATCH 12/23] Answer A-58: an owner change is its own change value Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index dda442e5..edb1f33d 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -223,3 +223,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". `resolved` and `toolchain` from the step's result (`dependencies`, §673), `branch` the watched branch of the catalog revision whose entry the build came from, and `source` that revision, both kept on the build's reservation from the candidate it built. +- **A-58** (§540, §685, §8; principle 8, one word per thing) An owner change is said as `condition-changed` with a new + `change` value `owner`, added to the seat `mesh-conditions`' enum in mesh-contracts; `words` stays for a change of the + text. `seed-waits` waits on the operator through the finding's own `waiting-on`, which the indexer sets and the keeper + copies, with no rule of the keeper's for that kind. From 93985958bc11e5fa474f86ee8fcd66e1ffe3241a Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:47:12 +0100 Subject: [PATCH 13/23] Answer A-59: the bus module's bundle reads the snapshot files Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index edb1f33d..c66cf8c3 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -227,3 +227,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". `change` value `owner`, added to the seat `mesh-conditions`' enum in mesh-contracts; `words` stays for a change of the text. `seed-waits` waits on the operator through the finding's own `waiting-on`, which the indexer sets and the keeper copies, with no rule of the keeper's for that kind. +- **A-59** (§681, A-45; principle 7, and who may do what is no question) The bus module's snapshots directory is made + readable by its tools bundle's account in its manifest (a group read, nothing more), so the bundle reads a + snapshot's file and sends its chunks as A-45 says; the keeper still writes and removes the files, and a protected + snapshot is still never handed out, by the bundle's own check. From fdaff7b780e684916c18c0dc1576769a9a3baca1 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:47:35 +0100 Subject: [PATCH 14/23] Answer A-60: chunk subjects go to the principal that answers the verb Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index c66cf8c3..59517ae8 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -231,3 +231,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". readable by its tools bundle's account in its manifest (a group read, nothing more), so the bundle reads a snapshot's file and sends its chunks as A-45 says; the keeper still writes and removes the files, and a protected snapshot is still never handed out, by the bundle's own check. +- **A-60** (§681, A-45; principle 7) The chunk subjects of a `chunks: true` verb are granted to the principal that + answers the verb: for the bus module, the tool runner's principal for its tools bundle (A-45); the restore subjects of + restricted streams to the keeper's process account, standing (ADR 0675 §2). From fe5275b4706f449bc0360695daf03add2d5fb8fa Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:49:37 +0100 Subject: [PATCH 15/23] Answer A-61: wanted said per want, kept last per node and module Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 59517ae8..6b53f017 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -234,3 +234,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-60** (§681, A-45; principle 7) The chunk subjects of a `chunks: true` verb are granted to the principal that answers the verb: for the bus module, the tool runner's principal for its tools bundle (A-45); the restore subjects of restricted streams to the keeper's process account, standing (ADR 0675 §2). +- **A-61** (§693, §683, §556, §113's form; principles 1 and 7) The assigner says `wanted` for every want it writes and in + the same write that removes one, on `mesh.seat.mesh-wants.event.wanted..` (each escaped as a name, §73), + the seat's stream kept last per subject, so each want's last word stands; `revision` is the assignment graph revision + of the pass that writes or removes it, and `source` that pass's source revision. The seat's definition gains the + subject's two tokens and its keep-last setting. From 712f2cc60ffa3b96eefd29d1cf06ecf47156a007 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:50:05 +0100 Subject: [PATCH 16/23] Answer A-62: the assigner's placement verb and the placed refusal Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 6b53f017..5355bdbc 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -239,3 +239,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". the seat's stream kept last per subject, so each want's last word stands; `revision` is the assignment graph revision of the pass that writes or removes it, and `source` that pass's source revision. The seat's definition gains the subject's two tokens and its keep-last setting. +- **A-62** (§704, §402; principles 7 and 8) The seat `mesh-module-assigner` gains the verb `placement`, class `read`: + input `{module}`, answer the module's placements as its `assignments` rows hold them (`{placements: [{branch, + nodes}]}`); the assigner serves it. An `unwatch` of a branch a placement names is refused with the new reason + `placed`, naming the placement. §675's *Kept while named* and §700's read of the router's record are the indexer's + in G, built with these rows. From a06201550193c5eace630193188a00d2ee649f50 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:55:15 +0100 Subject: [PATCH 17/23] Answer A-63: the outside wait's readings, as built Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 5355bdbc..549dcf95 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -244,3 +244,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". nodes}]}`); the assigner serves it. An `unwatch` of a branch a placement names is refused with the new reason `placed`, naming the placement. §675's *Kept while named* and §700's read of the router's record are the indexer's in G, built with these rows. +- **A-63** (§706; principle 7) As built in mesh-delivery 76fce4bd and 640191d4: "a module the delivery moved to M" is + one whose want on M names a fingerprint its have there does not yet run healthy; a wait's `clock-from` is the + failing check's time, also when it first rests on `conditions-unread`; while the keeper has not answered, a first + failing check holds as the settle and becomes `conditions-unread` only after it, and a standing wait keeps its cause + while a new read is out. From c1d331da404137ebc0bb4087e925bd0f0755e671 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:56:41 +0100 Subject: [PATCH 18/23] Answer A-64: the bus module's wire forms, as built, and its finding's scope Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 549dcf95..8ccedd8c 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -249,3 +249,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". failing check's time, also when it first rests on `conditions-unread`; while the keeper has not answered, a first failing check holds as the settle and becomes `conditions-unread` only after it, and a standing wait keeps its cause while a new read is out. +- **A-64** (§681, A-45; principles 7 and 8) As built in mesh-catalog 47aaee12: a chunk's body is `{n, of, data}`; a + restore's act id is the id of the request the bundle hands the keeper; `verify` answers `accepted` with that id and + says no event; an unprotected snapshot's restore refuses nothing further; each chunk is acknowledged by a request, + since the runtime answers only calls with a reply. One change: `snapshots-filling` takes an existing scope word, + scope `module`, id `nats.snapshots`. From eb061c76034cc1430fdb26388de71f0d5776bc7c Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:57:04 +0100 Subject: [PATCH 19/23] Answer A-65: mesh-knowledge's findings go through the writer Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 8ccedd8c..8b6d0c99 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -254,3 +254,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". says no event; an unprotected snapshot's restore refuses nothing further; each chunk is acknowledged by a request, since the runtime answers only calls with a reply. One change: `snapshots-filling` takes an existing scope word, scope `module`, id `nats.snapshots`. +- **A-65** (§387, §529; principle 1, a module's data lives on the bus) mesh-knowledge's findings go through the writer + like every observer's: it gains the `finding-events` stream and a writer over the `findings` state it already + requires, and its findings no longer live in its database. From e1764b4892b657c4d30151845b482370cd8bd6d7 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:57:23 +0100 Subject: [PATCH 20/23] Answer A-66: the seed's steps call, its fetch and its five minutes Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 8b6d0c99..d0a98fba 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -257,3 +257,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-65** (§387, §529; principle 1, a module's data lives on the bus) mesh-knowledge's findings go through the writer like every observer's: it gains the `finding-events` stream and a writer over the `findings` state it already requires, and its findings no longer live in its database. +- **A-66** (§704; principles 7 and 3) The seed's `steps` call names the artifact by the contract's key + `.`, `module` beside it; its `fetch` is composed from the entry (repository, commit, path, the + artifact's paths, and `packages` and `beside` where the entry carries them); the time since a seat first failed to + answer is kept in the indexer's own state, so a restart keeps it, and the finding is written at the next seed attempt + past five minutes. From 441296f37a014a4e02886c025d1068b1dfb85378 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:57:38 +0100 Subject: [PATCH 21/23] Answer A-67: the pass keeps its assignment graph revision first Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index d0a98fba..121a0363 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -262,3 +262,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". artifact's paths, and `packages` and `beside` where the entry carries them); the time since a seat first failed to answer is kept in the indexer's own state, so a restart keeps it, and the finding is written at the next seed attempt past five minutes. +- **A-67** (§292 and G-5's *wants follow the assignment graph*; principle 7) (c): the design has the assigner write each + want from an assignment graph revision it keeps, so the pass keeps that revision first (assigngraph.Compute and Keep + per catalog revision taken in), and `wanted`'s `revision` and `source` are that kept revision's and its catalog's. + No stand-in value. From 23356b2c88c94875b101dca2e1c58eee0812a52f Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 22:59:37 +0100 Subject: [PATCH 22/23] Answer A-68: what outdated compares against is kept as heard Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 121a0363..a23bf1b3 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -266,3 +266,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". want from an assignment graph revision it keeps, so the pass keeps that revision first (assigngraph.Compute and Keep per catalog revision taken in), and `wanted`'s `revision` and `source` are that kept revision's and its catalog's. No stand-in value. +- **A-68** (§375, A-66; principles 1 and 7) The indexer keeps what `outdated` compares against in its own state, as it + hears the events: `toolchain.` the newest `toolchain-agreed` per language, and `delivered.` the + newest `version-delivered` per module, in the same own state as A-66's keys; no new state, no field of `VersionEntry`, + no scan of the streams at a call. From ba91206c6b137cd69d5768b8afb28efa89d35ac9 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 23:00:34 +0100 Subject: [PATCH 23/23] Answer A-69 and A-70: pending artifacts kept, the builder's bundle serves reserved Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index a23bf1b3..9c3018fd 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -270,3 +270,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". hears the events: `toolchain.` the newest `toolchain-agreed` per language, and `delivered.` the newest `version-delivered` per module, in the same own state as A-66's keys; no new state, no field of `VersionEntry`, no scan of the streams at a call. +- **A-69** (§349; principles 3 and 7) The artifacts published so far at a version not yet released are kept in the + indexer's own state under `pending..`, beside A-66's keys, and removed when the version is released. +- **A-70** (§572, A-45; the rule that a process answers no call) The builder's tools bundle serves `reserved` and + `builder_versions`, following the catalog half's view itself as other bundles follow views; the builder's process + serves no call.