jschoubben
4cb9efadae
Design 42 zfs-owns-zfs: A-27 to A-29, met in develop
mesh/delivery merged: source.main moved to novox/hq@a5eae7aa0a68
mesh/check being carried to 4cb9efadae24 on a5eae7aa0a68 | from 283363d5cf3a
2026-11-13 00:28:08 +01:00
jschoubben
2c129789ff
Design 42 zfs-owns-zfs: A-26, a module declares what another resource needs before it
mesh/delivery closed: a newer head of the same pull request
mesh/check pass 2c129789ffe1 on 283363d5cf3a | unit 43 run, 0 kept, 1 skipped | integration 43 run, 0 kept, 1 skipped | composition passed in 46s on 4…
2026-11-13 00:19:30 +01:00
jschoubben
8c98c27a5e
Design 42 zfs-owns-zfs: A-25, the form search finds ${config-json}
2026-11-13 00:09:44 +01:00
jschoubben
435fe73a0f
Design 42 zfs-owns-zfs: the lead's answers to the prepare's 24 questions, each against the principles
2026-11-13 00:04:41 +01:00
jschoubben
04de5c3b30
Design 42 zfs-owns-zfs: the apply writes /etc/hostid and reads it back, as ADR 0679 version 17 says
...
No template writes the four binary bytes of /etc/hostid, so it is no resource
and the composer cannot see a second writer: the apply guards it by the pool's
label, reads it back, is unhealthy on a mismatch, and keeps the file on leave.
2026-11-12 23:59:15 +01:00
mesh-tools
e97647cd18
Merge pull request 'Design 47 G: A-319 and A-320, the check runs unit and integration tests only' ( #597 ) from design/47-G-lead-answers-24 into main
2026-11-12 22:37:17 +00:00
mesh-tools
b9cd0bc492
Merge pull request 'Design 42: the zfs module owns a node's ZFS and changes nothing that is not set (ADR 0679, issue 1979)' ( #596 ) from design/42-zfs-owns-zfs into main
2026-11-12 22:34:20 +00:00
jschoubben
06fd6f26b1
Test 36's end-to-end proof belongs to the test lab, not to a live node
...
mesh/delivery merged: source.main moved to novox/hq@e97647cd1805
mesh/check being carried to 06fd6f26b1bf on e97647cd1805 | from b9cd0bc492ac
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:21:35 +01:00
jschoubben
dec17874ab
Test 36 is proven by each module's integration test and one rehearsal; no check starts real builds
...
The operator, 2026-11-12: an integration test mocks every external dependency and tests the internal wiring.
Withdraws section 637 and A-315 (A-320).
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:21:12 +01:00
jschoubben
224348ff4d
Design 42 zfs-owns-zfs: answer review round 1 against ADR 0679 version 11
...
mesh/delivery merged: source.main moved to novox/hq@b9cd0bc492ac
mesh/check being carried to 224348ff4d69 on b9cd0bc492ac | from 9ebf6e58f0d7
Cites the record's final clauses, drops the catalog check and every
write of the package's files, and writes the lead's answers as design
lines: a run that never waits on a scrub, waits ended by events,
ZFS snapshots kept in the ledger before any removal, hand acts as unit
instances, subjects per kind, the follower's findings, the readers of
the new manifest words and one node-engine integration test.
2026-11-12 23:20:51 +01:00
jschoubben
4d7fc66110
Answer A-319: entry-again also asks the shadow's entries again
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:13:12 +01:00
mesh-tools
9ebf6e58f0
Merge pull request 'Design 47 G: lead answer A-318, what keeps its module form in G' ( #595 ) from design/47-G-lead-answers-23 into main
2026-11-12 22:12:37 +00:00
jschoubben
071192e586
Answer A-318: what keeps its module form in G, listed
...
mesh/delivery merged: source.main moved to novox/hq@9ebf6e58f0d7
mesh/check checking 071192e586b1 on 9ebf6e58f0d7
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 23:08:51 +01:00
jschoubben
f26c8afc20
Design 42 zfs-owns-zfs: schedule the run in list form, so nothing waits on the calendar fix
...
Today's node-engine writes a cron step as an invalid calendar but a
minute list as a valid one, so the scheduled run declares
0,15,30,45 and the milestone no longer waits on another session's fix.
2026-11-12 23:02:13 +01:00
jschoubben
0ea81e0e96
Design 42 zfs-owns-zfs: answer the open question in the node-engine, name issue 1979
...
The lead answered that a resource following a set value and one line
per list entry are built in the node-engine in this milestone, so the
module's files, units and handlers are placed only once their value is
set, as ADR 0679 holds. The cron-to-calendar fix leaves the milestone
and stays an ordering edge the scheduled run waits on.
2026-11-12 22:57:56 +01:00
mesh-tools
1de7bc38c8
Merge pull request 'Design 47 G: lead answer A-316, a candidate carries the parts of the modules it adds' ( #594 ) from design/47-G-lead-answers-22 into main
2026-11-12 21:55:25 +00:00
jschoubben
5c766b7c8c
Answer A-317: the assigner's main process alone writes a proposal's candidates
...
mesh/delivery merged: source.main moved to novox/hq@1de7bc38c8d9
mesh/check checking 5c766b7c8ce2 on 1de7bc38c8d9
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:54:24 +01:00
jschoubben
294a30b82b
A-316: the assigner's seat defines the two properties itself, held to the want's by a fixture
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 294a30b82b7a on aef65c2f1e7a
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:46:38 +01:00
jschoubben
f6cb279eea
Answer A-316: a candidate carries the parts of the modules it adds
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking f6cb279eeaec on aef65c2f1e7a
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:45:27 +01:00
mesh-tools
aef65c2f1e
Merge pull request 'Design 47 G: lead answer A-313, over-bound step answers in the steps state's own objects store' ( #593 ) from design/47-G-lead-answers-21 into main
2026-11-12 21:41:15 +00:00
jschoubben
6772904668
Design 42: the zfs module owns a machine's ZFS and changes nothing unset (ADR 0679)
...
Adds row 12 and a section to the main file, and the milestone part
zfs-owns-zfs with numbered lines and its three prerequisites, so a
builder takes ownership of ZFS's packages, files, units and one pool's
devices, properties and scheduled ZFS snapshots without a choice of
its own. Leaves one design question open (a resource that follows a
value only once it is set). Adds ZFS snapshot to the glossary beside
the two snapshots it already names.
2026-11-12 22:32:54 +01:00
jschoubben
fdac1264ac
Answer A-315: test 36 takes the builds of before G from the mesh and starts them as every module starts
...
mesh/delivery merged: source.main moved to novox/hq@aef65c2f1e7a
mesh/check checking fdac1264acd0 on aef65c2f1e7a
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:29:02 +01:00
jschoubben
3acb50433a
Answer A-314: the build modules' steps state moves into requires
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 3acb50433aaf on 0bf9465cbab6
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:28:07 +01:00
jschoubben
a6d455f59c
Answer A-313: over-bound step answers live in the steps state's own objects store
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking a6d455f59cfb on 0bf9465cbab6
A-309 named an age option the objects template does not have.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:26:49 +01:00
mesh-tools
0bf9465cba
Merge pull request 'Design 47 G: lead answers A-306 to A-309 from review round 2' ( #592 ) from design/47-G-lead-answers-20 into main
2026-11-12 21:25:58 +00:00
jschoubben
aad0eafa79
Use the glossary's words in A-311
...
mesh/delivery merged: source.main moved to novox/hq@0bf9465cbab6
mesh/check checking aad0eafa793e on 0bf9465cbab6
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:20:55 +01:00
jschoubben
5744cc0472
Answer A-311 and A-312, and give A-310's shape
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 5744cc047254 on 4eba1f451be9
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:20:34 +01:00
jschoubben
47bb7409be
Answer A-310: a compose request's manifest names its fingerprint beside its digest
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 47bb7409be46 on 4eba1f451be9
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:19:36 +01:00
jschoubben
383f21ed49
Answer A-309: a build module's outputs objects live as long as their step keys
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking 383f21ed4906 on 4eba1f451be9
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:03:26 +01:00
jschoubben
1b9c63e947
Answer A-307 and A-308: the node-engine gains no uses, and its watch of the indexer's modules goes
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:02:57 +01:00
jschoubben
edb7030102
Answer A-306: a module G creates is held by the test budget, not by section 626
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 22:00:16 +01:00
mesh-tools
4eba1f451b
Merge pull request 'Design 47 G: lead answer A-304, the checker puts a phase's asks at once' ( #591 ) from design/47-G-lead-answers-19 into main
2026-11-12 20:51:13 +00:00
jschoubben
dce214b7f5
Answer A-305: the pipeline runner's health is its unit, like its siblings'
...
mesh/delivery merged: source.main moved to novox/hq@4eba1f451be9
mesh/check checking dce214b7f566 on 4eba1f451be9
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 21:47:56 +01:00
jschoubben
a0147f94af
Answer A-304: the checker puts a phase's asks at once and holds no step
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking a0147f94af01 on a70316b51236
Try 4 and 5 ran their steps one at a time because the checker waited on each ask before putting the next.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 21:35:48 +01:00
mesh-tools
a70316b512
Merge pull request 'Design 47 G: correct lead answer A-303; playbook 07: the lead reads what an answer names first' ( #590 ) from design/47-G-lead-answers-18 into main
2026-11-12 19:36:39 +00:00
jschoubben
26faa9981f
Playbook 07: the lead reads what an answer names before it answers
...
mesh/delivery merged: source.main moved to novox/hq@a70316b51236
mesh/check being carried to 26faa9981fab on a70316b51236 | from ea3b790f1dc2
Three lead answers in one day named a structure from memory and needed a correction once a developer read the code.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:32:42 +01:00
jschoubben
a4f9d43037
Correct A-303: the reach's watches use the seat form, only the stuck key takes the real bucket
...
mesh/delivery closed: a newer head of the same pull request
mesh/check checking a4f9d43037e0 on ea3b790f1dc2
The view's kept reach holds no bucket name, so no kept entry depends on the holder's real bucket.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:31:31 +01:00
mesh-tools
ea3b790f1d
Merge pull request 'Design 47 G: the lead's answers A-298 to A-303' ( #589 ) from design/47-G-lead-answers-17 into main
2026-11-12 19:07:45 +00:00
jschoubben
9a14624b69
Answer A-303: seat-form pictures; the stuck key and reach history name the holder's real bucket at run time
...
mesh/delivery merged: source.main moved to novox/hq@ea3b790f1dc2
mesh/check being carried to 9a14624b6926 on ea3b790f1dc2 | from 023a355cdb2c
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:00:56 +01:00
jschoubben
d02f00bce7
Answer A-302: the indexer follows assignments through FollowSeat too; the holder loop goes
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:00:56 +01:00
jschoubben
480a857635
Answer A-301: the view's answers tool is the SDK's first-view tool with its callers list
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:00:56 +01:00
jschoubben
4fa5891697
Correct A-300: the view's tools keep assigner_read_wants, since a first view does not read by key or history
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:00:56 +01:00
jschoubben
f522c2114d
Answer A-300: the view's tools read the wants through the holder's first-view tool
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:00:56 +01:00
jschoubben
5c98c86d70
Answer A-299: the view's answers take one key form per asks kind; the kinds are seven
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:00:56 +01:00
jschoubben
b75c04f038
Answer A-298: one shared follower of the seat-holders view in the catalog seat's client
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 20:00:56 +01:00
mesh-tools
023a355cdb
Merge pull request 'Design 47 G: §717 (the views are named by their seats) and the lead's answers A-294 to A-297' ( #588 ) from design/47-G-lead-answers-16 into main
2026-11-12 17:59:25 +00:00
jschoubben
b03f5193b8
Design 47 G §717: a follower hears its seat's holder from the seat-holders view
...
mesh/delivery merged: source.main moved to novox/hq@023a355cdb2c
mesh/check being carried to b03f5193b8c4 on 023a355cdb2c | from 7247b92fd6b1
A seat's view is said on its holder's module subject, so a follower must know
the holder; asking for it every 5 seconds was polling and kept a holder that
moved. It now follows the seat-holders view as A-295's holder function does,
reached from the catalog half's claim, and re-follows when the holder changes.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 18:54:41 +01:00
jschoubben
80863372dc
Design 47 G §717: the status view's and the assigner's views are named by their seats
...
Developer J27 met, building A-210, a status view that claims no seat and an
assigner holding two seats, both followed by the teller by module name. ADR
0540 §1 already names the seat mesh-delivery-view; G defines it with its one
view, puts the assigner's asks and wants on mesh-wants, and has a follower find
the holder in the background so no start stops for it.
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 18:54:41 +01:00
jschoubben
01fdde3701
Answer A-297: the runner's step ask id takes the usual form, repeatable per placement
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 18:54:41 +01:00
jschoubben
ef76908e0d
Answer A-296: seat forms in the manifests, own buckets from the credential's module
...
Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 18:54:41 +01:00