Design 47 G: the lead's answer A-293 #586

Merged
mesh-tools merged 3 commits from design/47-G-lead-answers-15 into main 2026-11-12 16:24:58 +00:00
@@ -434,3 +434,12 @@ 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. 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 `<node>.<module>.<fp>` 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.