From 66d37b8f3052cd41972cba019070243678c6d392 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 17:05:37 +0100 Subject: [PATCH 1/3] Answer A-293: in by-entries mode a failed newest build is said as a refused key on the builder's build-ended event Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 4 ++++ 1 file changed, 4 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 95133f94..fdcca16e 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 @@ -434,3 +434,7 @@ the principle that settles it, cited as "design 47 G A-n". 'not yet'); every later change is said as `manifest-reads-changed` at once. A say the bus does not take is said again within the same link through the SDK's bus retry until the bus takes it, and each failed attempt is written to the engine's journal with the event's name; the held-for-the-next-link form stays only for a link that is lost. +- **A-293** (§421, §628, ADR 0593 §6, issue 1966 U1/U8; principles 1 and 3) In by-entries mode the node-engine still + says a placed module's newest build that ended failed as a refused key with the build's words: it hears the + builder's build-ended event for that fingerprint (an event, not a read of the builder's builds), so no reader waits + on a build that will never be done; a queued or running build stays unpublished. From f99c0c9e2912520a3500f1612ddfb92e46d24354 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 17:09:10 +0100 Subject: [PATCH 2/3] Amend A-293: the newest build is the last trunk build-ended event heard for the module 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, 5 insertions(+), 1 deletion(-) 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 fdcca16e..a01525db 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 @@ -437,4 +437,8 @@ the principle that settles it, cited as "design 47 G A-n". - **A-293** (§421, §628, ADR 0593 §6, issue 1966 U1/U8; principles 1 and 3) In by-entries mode the node-engine still says a placed module's newest build that ended failed as a refused key with the build's words: it hears the builder's build-ended event for that fingerprint (an event, not a read of the builder's builds), so no reader waits - on a build that will never be done; a queued or running build stays unpublished. + on a build that will never be done; a queued or running build stays unpublished. A placed module's newest build is + the last trunk build-ended event (one naming no branch) the engine heard for that module, from the builder's + build-ended events read whole at start and then followed, as the assigner hears them (A-181, §556): a failed end + writes the refused key `..` with the event's words, a later done end of the module supersedes + it, and an end naming a branch moves nothing. From 7c533965bfa6603ec3365cd7176cfddb0afc213c Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 17:11:35 +0100 Subject: [PATCH 3/3] Amend A-293: a later done end deletes the refused key a failed end wrote 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, 3 insertions(+), 2 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 a01525db..e0c38260 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 @@ -440,5 +440,6 @@ the principle that settles it, cited as "design 47 G A-n". on a build that will never be done; a queued or running build stays unpublished. A placed module's newest build is the last trunk build-ended event (one naming no branch) the engine heard for that module, from the builder's build-ended events read whole at start and then followed, as the assigner hears them (A-181, §556): a failed end - writes the refused key `..` with the event's words, a later done end of the module supersedes - it, and an end naming a branch moves nothing. + writes the refused key `..` with the event's words, a later done end of the module (at any + fingerprint) deletes the refused key such an end wrote, so the state never says refused for a done build, and an + end naming a branch moves nothing.