From 14f908926e95a8be196486d24583b4c8be8e48e9 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 11:58:31 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Answer=20A-281:=20the=20switch=20runs=20onc?= =?UTF-8?q?e=20and=20marks=20it,=20so=20=C2=A7716's=20deliveries=20never?= =?UTF-8?q?=20become=20records=20at=20a=20start?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index 69a6cd12..ccf24711 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -384,3 +384,8 @@ the principle that settles it, cited as "design 47 G A-n". membership that carries it (`node-tools` `bus.eventSubject`). The grants part lists a module's required `finding-events` stream in its membership with that subject and the finding events, so a bundle's findings land under its binding as a process's do; with no such stream they stay on EVENTS. +- **A-281** (§156, §716; principles 2 and 7) The switch runs once, as §156 says: after it has carried today's state in, + the gate writes the key `switch.done` (the gate's fingerprint and the time) in the state that holds its records, and a + later start that finds it runs no switch, so the deliveries §716 writes never become records at a start. A revert's + restore brings back the state from before G without the key, so delivering G again switches again, still safe to run + twice by the record's key. From da9b67274762a610af28b679159882e69fb18b71 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 13:10:24 +0100 Subject: [PATCH 2/3] Answer A-282 and A-283: a step bound is created once; a template state's max-mib reaches its bucket Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index ccf24711..46c0629a 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -389,3 +389,9 @@ the principle that settles it, cited as "design 47 G A-n". later start that finds it runs no switch, so the deliveries §716 writes never become records at a start. A revert's restore brings back the state from before G without the key, so delivering G again switches again, still safe to run twice by the record's key. +- **A-282** (A-115, §544; principles 3 and 7) An ask's step bound key is created once: `stepBounds.Arm` creates it + only if absent, and a second waiter that finds it already there takes it as armed and waits on the same key; it is + never deleted to be made again. +- **A-283** (A-277, ADR 0595; principle 7) The holder of the seat `mesh-broker` makes a template `state` bucket with + the `max-mib` its requirement declares, the default cap where none is declared, as the grants part does for a + state section; one cap rule for every state bucket. From de676868c65a37342d4b7b52e6aac926f54896c0 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 13:14:19 +0100 Subject: [PATCH 3/3] Correct A-282: the step bound moves with the step by a revision-checked update, never a delete Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index 46c0629a..3c1e21eb 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -389,9 +389,10 @@ the principle that settles it, cited as "design 47 G A-n". later start that finds it runs no switch, so the deliveries §716 writes never become records at a start. A revert's restore brings back the state from before G without the key, so delivering G again switches again, still safe to run twice by the record's key. -- **A-282** (A-115, §544; principles 3 and 7) An ask's step bound key is created once: `stepBounds.Arm` creates it - only if absent, and a second waiter that finds it already there takes it as armed and waits on the same key; it is - never deleted to be made again. +- **A-282** (A-115, §544, issue 1930; principles 3 and 7; corrected once) An ask's step bound key is never deleted + to be made again. `stepBounds.Arm` creates it if absent; when the step moves, the waiter writes it again by an update + against the revision it read, so the bound still counts from the step's last movement (issue 1930); a waiter whose + update loses to another's reads the key again and takes the newer bound as armed. - **A-283** (A-277, ADR 0595; principle 7) The holder of the seat `mesh-broker` makes a template `state` bucket with the `max-mib` its requirement declares, the default cap where none is declared, as the grants part does for a state section; one cap rule for every state bucket.