Amend design 47 for milestone G: the gate's record, the seat git, the merge on the Approve alone #530

Merged
mesh-tools merged 8 commits from design/47-G-amendment into main 2026-11-09 19:38:47 +00:00
8 Commits
Author SHA1 Message Date
jschoubben c9abb1c5f9 Test 58 names a part not heard, not a node away: a check still passes a sleeping node with a warning
mesh/check checking c9abb1c5f92e on 6611b94e3d7a
mesh/delivery merged: source.main moved to novox/hq@6611b94e3d7a
The test read as failing every check while a node sleeps, against ADR 0593 §9 and the design's own try section.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 20:12:00 +01:00
jschoubben b3484cdcfc Name the indexer's mesh-wide hold among what milestone G retires and a revert restores
mesh/check checking b3484cdcfc50 on 2de011e070d4
mesh/delivery closed: a newer head of the same pull request
The per-node wait is the assigner's, so the indexer's hold states and tools go with its modules state.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 20:07:35 +01:00
jschoubben 76b317ed3a Take in round 3's second pass on design 47's G amendment: put-stands timed by the watchman, the put ends by done
A new step would read as a running put to a reverted assigner, the running-before-assigner order is no
edge of the module graph, put-stands needs a writer that survives a stopped assigner, and the tool
runner's revision rests on ADR 0663, now required before the push beside ADR 0661.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 20:06:40 +01:00
jschoubben 205992f15c Take in round 3's review of design 47's G amendment: the put's end by step, the readers' order and waits
The reviewers found the put's end written as built when the recovery reads the have, no end for a put of
the running build, nothing said for a put that stands, two of the eight readers outside the served-verb
order, the readers missing the no-view rule and the candidate case, and a revert's restored modules
unsaid. Each is now written as the lead ruled, with rows in tests 61 and 62.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 20:02:31 +01:00
jschoubben e73a1a7bcf Take in round 3 of design 47's G review: no module reads the indexer's modules, a put ends itself, ADR 0662 withdrawn
G stops declaring the indexer's modules, so the eight other modules that read it would break unless they
move to the catalog half in the same milestone. A put without hold never ended and pinned its want; ADR
0546 §5 already says it ends once the node runs it, now heard on the node-engine seat's running event.
ADR 0662 decided ADR 0661's switch another way and is withdrawn, so G builds ADR 0661 alone.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-09 19:56:42 +01:00
jschoubben 4f388e8452 Take in round 2 of design 47's G review: running kept per subject, the merge waits on the Approve alone, ADR 0661 named
mesh/check pass 4f388e845294 on 2de011e070d4 | unit 43 run, 0 kept, 1 skipped | integration 43 run, 0 kept, 1 skipped | composition passed in 85s on 4…
mesh/delivery closed: a newer head of the same pull request
Round 2 found the pass's running events could age out of a new consumer's reach, the merge bullet still
holding for a carry, the checker's own owed acts unanswered, findings that never cleared, and
kept-artifact open to any module and caller. Each is now written as the lead ruled, with its test row.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 19:21:49 +01:00
jschoubben 2fd96e1e4e Take in round 1 of design 47's G review: hear what nodes run, say what the forge is owed, reach the forge by its seat
The reviewers found a seat's pass waiting on a call to a node that may be away, acts owed to the forge
that could be lost or done twice, a seat git that missed the gate's and half the parts' forge calls and
events, a merge that still judged a check the operator removed, and waits with no bound or condition.
The design now keeps what each node runs from its running events, makes every owed act safe to repeat
with its outcome said and recorded, gives the seat git every call and event with its act verbs granted
by the holder's callers, orders forge, bridge and gate with a way back, adds module-held and
check-could-not-run, numbers tests 56 to 60, and says how the store seat's holder takes its own build.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 19:21:49 +01:00
jschoubben 7f2f37d9e6 Amend design 47 for milestone G's prepare, so G is built from what the records hold
The prepare found the design behind its records and the code: Placement retired by ADR 0641 while the
design still put two seats in a contracts module never made, ADR 0659 and ADR 0660 not followed, the
checker and the forge bridge reading the gate's state, the delivery parts naming the forge module's
tools, and four hand-wired seat-list readers. Design 47 now writes each as the design's choice under the
record it follows; the hold and the merge turns are removed by the operator's word with their record
still to come, and a session's recovery merge waits for one. The glossary moves Placement's words into
Core and Delivery and adds the seat mesh-grants; the words test refuses Placement as a domain heading
(ADR 0641 §5); design 26 takes the new contracts homes and the seat git's verbs.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
2026-11-09 19:21:49 +01:00