From 7dc07070082fbbee03898a51f9b2264d113bdf74 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:42:11 +0100 Subject: [PATCH 01/15] Answer A-16: one mesh-sdk constructor makes a stdio module's finding writer Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 d6d5f1fa..2088c0b5 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 @@ -61,3 +61,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-15** (§614; principle 3) In the branch follower an `entry` the holder refuses is `not-found`; a transport error leaves it `asked` and is asked again; each part writes `entry-not-found` from the follower's changes. As built in mesh-delivery ab616fa6. +- **A-16** (§461, §485, §503; principle 7, the rule that shared code lives in mesh-sdk) A stdio module's writer is made by + one mesh-sdk constructor, `views.NewStdioWriter`, generic as the writer is,, which fills `Publish` from the module's own event + publish and `Listen` from its subscription; no module writes that adapter. The tool runner's own finding writer + (mesh-tools' first views) hands in `Publish` and `Listen` from its bus connection, in its one place. -- 2.54.0 From 7c476bfb4a2d63974d0d418e6e163fb94a11129c Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:43:47 +0100 Subject: [PATCH 02/15] Answer A-17: the writer names findings-asked with its seat Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 2088c0b5..ade67fd7 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 @@ -65,3 +65,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". one mesh-sdk constructor, `views.NewStdioWriter`, generic as the writer is,, which fills `Publish` from the module's own event publish and `Listen` from its subscription; no module writes that adapter. The tool runner's own finding writer (mesh-tools' first views) hands in `Publish` and `Listen` from its bus connection, in its one place. +- **A-17** (§461, A-16; principle 7) `findings-asked` is always the seat `mesh-conditions`' event, so the writer names it + with that seat, `mesh-conditions.findings-asked`, as a constant of mesh-sdk, in Go and TypeScript alike; no module + supplies it. -- 2.54.0 From c58a00b3a7710bb17765b79cb11c9e4d127e30a0 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:45:53 +0100 Subject: [PATCH 03/15] Answer A-18: what G retires in the gate leaves no trace Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 ade67fd7..9f7cb4ae 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 @@ -68,3 +68,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-17** (§461, A-16; principle 7) `findings-asked` is always the seat `mesh-conditions`' event, so the writer names it with that seat, `mesh-conditions.findings-asked`, as a constant of mesh-sdk, in Go and TypeScript alike; no module supplies it. +- **A-18** (§587, §305; principle 7) What G retires leaves no trace: the gate's record type drops the `remove` operation + and `OpRemove` (§587: a removal is no operation), and its `table`, `recheck` and `close` go with their handlers and + tools (§305). `checks`, which no line retires, stays. -- 2.54.0 From 99d9721ff310cb11b4382f34287e0c6d7e27b7c6 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:47:28 +0100 Subject: [PATCH 04/15] Answer A-19: HearSeatEvents' read at the start Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 9f7cb4ae..c292c8d6 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 @@ -71,3 +71,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-18** (§587, §305; principle 7) What G retires leaves no trace: the gate's record type drops the `remove` operation and `OpRemove` (§587: a removal is no operation), and its `table`, `recheck` and `close` go with their handlers and tools (§305). `checks`, which no line retires, stays. +- **A-19** (§641, §556; principles 1, 7 and 2) `HearSeatEvents` learns that a stream is kept last per subject from the + stream's own info on the bus, with no new parameter; its ordered read at the start filters on the same subjects as its + durable; the read's messages go to the same handler as the durable's, so one path handles both; it names the read + `waiting` and then `read` through one callback option it calls, which the module wires to its first views, so + `process` imports nothing of `views`. -- 2.54.0 From b057329e65605d7ca89d69302564f86ae10874d7 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:47:52 +0100 Subject: [PATCH 05/15] Answer A-20: the gate's kept data moves with the fewest parts that lose none Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 c292c8d6..9fbe82f0 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 @@ -76,3 +76,9 @@ names the principle that settles it, and is cited as "design 47 G A-n". durable; the read's messages go to the same handler as the durable's, so one path handles both; it names the read `waiting` and then `read` through one callback option it calls, which the module wires to its first views, so `process` imports nothing of `views`. +- **A-20** (§613, replaces A-8's way of opening the old section; principles 7 and 2, and no data is lost) The gate keeps + its kept data with the fewest parts that lose none: where the template `state` entry can take the old section's + existing bucket as its own, it does, and nothing is copied; where it cannot, the old section stays declared in + `state` under the local name `-old` bound to its existing bucket, read through `stdio.State` like any section, + copied once by A-8's rule (a key only where the template lacks it), and retired with §613's other old sections. + The developer says which of the two the runtime allows, with the line of code that shows it. -- 2.54.0 From c3de071fc86368b12c5c1754ed1c052168654c27 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:48:03 +0100 Subject: [PATCH 06/15] Answer A-21: the object sessions' store, chunk and threshold Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 9fbe82f0..fd6888ef 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 @@ -82,3 +82,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". `state` under the local name `-old` bound to its existing bucket, read through `stdio.State` like any section, copied once by A-8's rule (a key only where the template lacks it), and retired with §613's other old sections. The developer says which of the two the runtime allows, with the line of code that shows it. +- **A-21** (§518, §345, §457, §643; principles 7 and 3) Each put-chunk and each get call carries `objects`, the store's + local name, as today's put does. The chunk is a constant of `buscalls`, 512 KiB, which fits under the bus's default + maximum payload of 1 MiB whatever the bus is set to; a value larger than one chunk goes by session, a smaller one in + one call as today, so there is one threshold. -- 2.54.0 From 4d729a009aeb0b576c0a538bcbbea338343a65d1 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:49:56 +0100 Subject: [PATCH 07/15] Answer A-22: the self-check and healers moves, as built Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 fd6888ef..202aff08 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 @@ -86,3 +86,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". local name, as today's put does. The chunk is a constant of `buscalls`, 512 KiB, which fits under the bus's default maximum payload of 1 MiB whatever the bus is set to; a value larger than one chunk goes by session, a smaller one in one call as today, so there is one threshold. +- **A-22** (§686, §689, A-14; principle 7) As built in mesh-catalog 9677f200 and b78e90c0: a pending finding's bound is the + module's own check interval; a field the contract's `Finding` lacks (`resolved`) is dropped; an id is escaped as a + name, and a `ref` goes into the id only where two findings of one kind share an id; old keys are cleared by the + writer's first statement. mesh-sdk keeps no old `views.Finding` or `FindingWriter` beside the generic writer. -- 2.54.0 From 1ac0f4e311352ea78839842b15fa15bf2b1be1aa Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:51:12 +0100 Subject: [PATCH 08/15] Extend A-22: resolved words are dropped in every module Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 202aff08..74c4ce63 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 @@ -87,6 +87,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". maximum payload of 1 MiB whatever the bus is set to; a value larger than one chunk goes by session, a smaller one in one call as today, so there is one threshold. - **A-22** (§686, §689, A-14; principle 7) As built in mesh-catalog 9677f200 and b78e90c0: a pending finding's bound is the - module's own check interval; a field the contract's `Finding` lacks (`resolved`) is dropped; an id is escaped as a + module's own check interval; a field the contract's `Finding` lacks (`resolved`, and its words in every module, the watchman's included) is dropped, the keeper saying a clear in its own words; an id is escaped as a name, and a `ref` goes into the id only where two findings of one kind share an id; old keys are cleared by the writer's first statement. mesh-sdk keeps no old `views.Finding` or `FindingWriter` beside the generic writer. -- 2.54.0 From 21fa15d96d6f7e87a0902eb4c6f07571f881194c Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:52:52 +0100 Subject: [PATCH 09/15] Answer A-23: the gate's recovery mark is one field of the record Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 2 ++ 1 file changed, 2 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 74c4ce63..8129374d 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 @@ -90,3 +90,5 @@ names the principle that settles it, and is cited as "design 47 G A-n". module's own check interval; a field the contract's `Finding` lacks (`resolved`, and its words in every module, the watchman's included) is dropped, the keeper saying a clear in its own words; an id is escaped as a name, and a `ref` goes into the id only where two findings of one kind share an id; old keys are cleared by the writer's first statement. mesh-sdk keeps no old `views.Finding` or `FindingWriter` beside the generic writer. +- **A-23** (§81, §132; principle 7) The gate's `recovery` marks the delivery record through its ordinary update, with one + field `recovery` holding `by` (the proved caller), `why` and `commit`; no new operation. Then it says `recovery-merged`. -- 2.54.0 From d0597bd2e5e4453e7b265d8ccc5be4963415fa25 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:54:19 +0100 Subject: [PATCH 10/15] Answer A-24: the gate's reading verbs answer the delivery records Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 8129374d..8e92712b 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 @@ -92,3 +92,8 @@ names the principle that settles it, and is cited as "design 47 G A-n". writer's first statement. mesh-sdk keeps no old `views.Finding` or `FindingWriter` beside the generic writer. - **A-23** (§81, §132; principle 7) The gate's `recovery` marks the delivery record through its ordinary update, with one field `recovery` holding `by` (the proved caller), `why` and `commit`; no new operation. Then it says `recovery-merged`. +- **A-24** (§431, §172, §592, §158; principles 7 and 4) Once the merge states go, `deliveries`, `show` and `groups` answer + the delivery records as the gate keeps them (G-3 *The delivery record*), filtered by their arguments, with no line + form of their own; `stalled` answers the records whose open wait is past its bound, with that wait. The pull-request + handlers and their effects stay only where G-3 §158 names what the gate owes the forge, rebuilt on the records; the + rest goes with the state table. -- 2.54.0 From cab8c547f1a41fb918236efaf3cce20d51d0d002 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:55:01 +0100 Subject: [PATCH 11/15] Correct A-13: findings-asked is heard on the seat's subject, not the part's stream Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 8e92712b..364c9604 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 @@ -52,9 +52,9 @@ names the principle that settles it, and is cited as "design 47 G A-n". - **A-11** (GR10; principle 7) A wait's `version` is the holder's own running fingerprint, as the indexer names it. - **A-12** (GR10, §276; principle 4) `grants_release` ends the granting wait: the held entries go on, the wait is said ended with `how` `released`, and no `acting-part-late` is raised for it. -- **A-13** (§461, §439, §383; principle 7) mesh-sdk's writer forms its four subjects itself, in §383's form +- **A-13** (§461, §439, §383; principle 7) mesh-sdk's writer forms its three own subjects (`finding-written`, `finding-cleared`, `findings-stated`) itself, in §383's form `mesh.stream..event..`, from its module and node, through one function - `views.FindingSubjects(module, node)`; a module passes no subjects. + `views.FindingSubjects(module, node)`; a module passes no subjects. It hears `findings-asked` on the seat's subject `mesh.seat.mesh-conditions.event.findings-asked` (§387, §390, A-17), never on the part's own stream. - **A-14** (§580; principles 7 and 8) A finding that told several findings of one kind on one id apart by a `ref` puts that part into its id (`.`, each escaped as §73 escapes a name); a kind stays a fixed word of its bundle's list. The key's scope and id and the subject's scope and id are set equal, as before. -- 2.54.0 From 9e3b63a6dbfcef48321b3bd2df54124e01fe8c2c Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:55:12 +0100 Subject: [PATCH 12/15] Answer A-25: a session put keeps its description Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 2 ++ 1 file changed, 2 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 364c9604..bdb578de 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 @@ -97,3 +97,5 @@ names the principle that settles it, and is cited as "design 47 G A-n". form of their own; `stalled` answers the records whose open wait is past its bound, with that wait. The pull-request handlers and their effects stay only where G-3 §158 names what the gate owes the forge, rebuilt on the records; the rest goes with the state table. +- **A-25** (§518, A-21; principle 3) A session put loses nothing a one-call put keeps: its first chunk carries the put's + `description`. -- 2.54.0 From 0bcfff8e1189a619446e496fcb93361eee383c52 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:55:34 +0100 Subject: [PATCH 13/15] =?UTF-8?q?Correct=20A-18:=20checks=20goes=20with=20?= =?UTF-8?q?the=20merge=20states,=20as=20=C2=A7431=20says?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 bdb578de..1ea0d2d1 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 @@ -70,7 +70,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". supplies it. - **A-18** (§587, §305; principle 7) What G retires leaves no trace: the gate's record type drops the `remove` operation and `OpRemove` (§587: a removal is no operation), and its `table`, `recheck` and `close` go with their handlers and - tools (§305). `checks`, which no line retires, stays. + tools (§305). `checks` goes too, as §431 retires it with the merge states; the check is the runner's now (G-2). - **A-19** (§641, §556; principles 1, 7 and 2) `HearSeatEvents` learns that a stream is kept last per subject from the stream's own info on the bus, with no new parameter; its ordered read at the start filters on the same subjects as its durable; the read's messages go to the same handler as the durable's, so one path handles both; it names the read -- 2.54.0 From c0409d137a649cb448d9260b589bee10c4ff6fc0 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:57:32 +0100 Subject: [PATCH 14/15] Answer A-26: followers' findings are the reader's, through Adopt Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 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 1ea0d2d1..ddc6e6e4 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 @@ -99,3 +99,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". rest goes with the state table. - **A-25** (§518, A-21; principle 3) A session put loses nothing a one-call put keeps: its first chunk carries the put's `description`. +- **A-26** (§687, §689, A-22; principle 7) A part raises no follower's finding itself: every follower is adopted through + its reader (`Adopt`), and the reader raises and clears the follower's four findings through the module's writer, so + the pipeline runner, the indexer and the assigner build none of their own. -- 2.54.0 From a1efa452500f22d0f0a08e3798b517dacafc8225 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:57:51 +0100 Subject: [PATCH 15/15] Correct A-17: mesh-sdk names no seat; the module passes the contract's findings-asked subject Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 ddc6e6e4..979245a6 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 @@ -65,9 +65,10 @@ names the principle that settles it, and is cited as "design 47 G A-n". one mesh-sdk constructor, `views.NewStdioWriter`, generic as the writer is,, which fills `Publish` from the module's own event publish and `Listen` from its subscription; no module writes that adapter. The tool runner's own finding writer (mesh-tools' first views) hands in `Publish` and `Listen` from its bus connection, in its one place. -- **A-17** (§461, A-16; principle 7) `findings-asked` is always the seat `mesh-conditions`' event, so the writer names it - with that seat, `mesh-conditions.findings-asked`, as a constant of mesh-sdk, in Go and TypeScript alike; no module - supplies it. +- **A-17** (§461, A-16; ADR 0613 §5, principle 7; corrected) `findings-asked` is always the seat `mesh-conditions`' event, + but a seat's name and contract are mesh-contracts' (ADR 0613 §5), so mesh-sdk names no seat: the writer takes the + subject it hears in one config field `Asked`, which each module fills from the generated `mesh-conditions` contract's + own constant (`SubjectFindingsAsked`), in Go and TypeScript alike. - **A-18** (§587, §305; principle 7) What G retires leaves no trace: the gate's record type drops the `remove` operation and `OpRemove` (§587: a removal is no operation), and its `table`, `recheck` and `close` go with their handlers and tools (§305). `checks` goes too, as §431 retires it with the merge states; the check is the runner's now (G-2). -- 2.54.0