jschoubben
95f52afab2
Record the checksums of mesh-sdk feat/r4g 9205222a for the group's modules (R4g)
2026-10-23 16:26:11 +02:00
jschoubben
e4a40a1cb0
Pin mesh-sdk at feat/r4g's head 9205222a, the merge of lanes A, B, S8 and F1, so every module r4g touches builds against one SDK
...
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
2026-10-23 16:22:02 +02:00
jschoubben
dd8e05142d
Merge branch 'feat/r4g-scripts' into feat/r4g
2026-10-23 16:20:17 +02:00
jschoubben
66be3dd0e4
Merge branch 'feat/r4g-view' into feat/r4g
2026-10-23 16:20:17 +02:00
jschoubben
527f87f94c
Merge branch 'feat/r4g-asks' into feat/r4g
...
# Conflicts:
# modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge.go
# modules/mesh-delivery-checker/manifest_test.go
# modules/mesh-delivery-checker/module.json
2026-10-23 16:20:17 +02:00
jschoubben
0463f21026
Merge branch 'feat/r4g-assigner' into feat/r4g
2026-10-23 16:19:45 +02:00
jschoubben
a4629bc649
Compute every module's fingerprint with no builder input and read no build-agent record for it, so a change of the builder rebuilds nothing (issue 1887 I1, ADR 0530 §1)
2026-10-23 16:14:19 +02:00
jschoubben
50836eb4d6
Format the watchman's integration test (issue 1887 A8b)
2026-10-23 16:14:03 +02:00
jschoubben
79ef768ea4
Show the backlog of build asks per language and kind: waiting, held by a node, and the oldest waiting ask's age (issue 1887 A8a)
2026-10-23 16:14:00 +02:00
jschoubben
a8ba5c2fd5
Mirror a waiting build ask as a pulse until a node writes its step, and drop the read of the controller's checks-running (issue 1887 A8b)
2026-10-23 16:12:43 +02:00
jschoubben
d0354574c6
Look the assigner's compositions bucket up at each check until it is there, so an assigner delivered after the checker started is read without a restart (issue 1297, review round 1 item 3)
2026-10-23 16:12:18 +02:00
jschoubben
69577f739d
Judge hq as any repository, so its pull requests get a verdict and mesh/check from its Go tests and no script judges it (issue 1887 A10, ADR 0527 §2)
2026-10-23 16:11:43 +02:00
jschoubben
d4977d9c9d
Start the checker whole with the assigner's verdict on the bus and read its line, the level 1297/AC3 asks (issue 1297, review round 1 item 2)
2026-10-23 16:11:31 +02:00
jschoubben
179664898a
Merge feat/r4g-asks into the view lane, keeping the checker's assigner compositions
2026-10-23 16:11:15 +02:00
jschoubben
77af82cfa2
Keep the asks state and write the ask about a held fingerprint, so the view's and the teller's read of mesh-delivery-assigner.asks is granted and has something to answer (issue 1297, review round 1 item 1; ADR 0528 clause 6)
2026-10-23 16:11:07 +02:00
jschoubben
f37e5d5fa1
Delete merge-check.sh; the checker's levels and the build module's fetch beside run what it ran (issue 1295, S8; ADR 0529)
2026-10-23 16:10:46 +02:00
jschoubben
d9d1e57e3a
Delete the checker's hold, its own capacity and places, its node moves and its read of the controller's plans-building, so a check waits only in the build seats' streams (issue 1887 A5b, closes 1685; ADR 0525 §4, §7)
2026-10-23 16:09:34 +02:00
jschoubben
e4b639c6de
Judge each pull request's check as one ask on the build seats' check stream, a re-judge on recheck, so the checker chooses no node and a lost node's check is redelivered, not moved (issue 1887 A5a, ADR 0525 §1, §3, ADR 0536 §4)
2026-10-23 16:05:55 +02:00
jschoubben
271d1ca759
Pin mesh-sdk at feat/r4g's head c3915ffb, the merge of lane B's layouts, so every r4g module builds against one SDK
...
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
2026-10-23 16:01:15 +02:00
jschoubben
2227e7a81f
Merge branch 'feat/r4g-view' into feat/r4g
2026-10-23 15:59:55 +02:00
jschoubben
173178df86
Merge branch 'feat/r4g-assigner' into feat/r4g
2026-10-23 15:59:55 +02:00
jschoubben
9f27e2b1f8
Build each build module's part of a fingerprint as one ask on its seat's stream, named in the key before it is put, so the builder chooses no node, holds no capacity and never asks twice (issue 1887 A4a, A4b, A4c, ADR 0525 §1-§6)
2026-10-23 15:57:03 +02:00
jschoubben
d5868c178f
Take the words of a module the change removes from mesh-sdk in the indexer and the assigner, so the assigner's reading of a removal cannot drift from what the indexer writes (issue 1297, B3b)
2026-10-23 15:44:00 +02:00
jschoubben
7cbb1c4207
Wait for the assigner's composition only while the assigner is online, say at once that it is not judged when it is not, and take it in when the assigner writes it later, so no check waits its bound for a composition nobody makes (issue 1297, B3d)
2026-10-23 15:44:00 +02:00
jschoubben
4c98841d2a
Judge a repository the mesh knows no module of with both build modules, so mesh-lab's nested Go modules and its npm test both run (issue 1887 A12)
2026-10-23 15:41:57 +02:00
jschoubben
c9ee92a4ab
Pin the assigner and the checker to the SDK commit that holds the assigner's ask value, so both build on the layouts the view reads (issue 1297, subtask B1c)
2026-10-23 15:39:49 +02:00
jschoubben
0f7091e4ac
Place the change's own repository beside it at its trunk, so a shrink-only list test compares with the trunk's copy at $MESH_CHECK_BESIDE/<name> (issue 1887 A12, ADR 0529 §2)
2026-10-23 15:35:37 +02:00
jschoubben
ed98a7519e
Write every difference between a want and what the controller sends, and delete one that ended, so the view and acceptance test 17 read them on the bus (issue 1297, subtask B5b; ADR 0528 clause 4)
2026-10-23 15:31:11 +02:00
jschoubben
d7ba5aa91e
Compare each node's want with the fingerprint of the build the controller sends it, explaining a difference by the rule that holds the want back or saying it unexplained (issue 1297, subtask B5a; ADR 0528 clause 4)
2026-10-23 15:30:31 +02:00
jschoubben
016385751d
Write each node's want by the six rules, the canary the first online node by name, and hold a fingerprint whose health failed with its nodes set back, so R5's wants can be compared with what the controller sends (issue 1297, subtasks B4a-B4b; ADR 0429 §6, ADR 0528 clauses 1 and 3, ADR 0435 §3)
2026-10-23 15:29:57 +02:00
jschoubben
5091cab652
Read the assigner's composition into the checker's verdict in place of 'not yet run', failing a check whose composition failed, naming its machine (issue 1297, subtask B3d; ADR 0528 clause 5)
2026-10-23 15:27:59 +02:00
jschoubben
d8599855e1
Compose the machines a change touches, from the trunk's and the change's manifests and the controller's assignments on the bus, and write the verdict under the checker's key; what needs the facts snapshot is said as not judged (issue 1297, subtasks B3a-B3c; ADR 0446 clauses 1-3, ADR 0528 clause 5, ADR 0482 clause 3 as R4g delivers it)
2026-10-23 15:25:22 +02:00
jschoubben
57258b6fa4
Take the assigner's ask in the SDK's layout and name the asking in the view's answer, so a stale answer never fills a later asking (issue 1297 B9 and B10)
2026-10-23 15:22:32 +02:00
jschoubben
c2b7b8867e
Start the assigner whole on an embedded bus in an integration test: it says its three states and refuses to start without a bucket it reads (issue 1297, subtask B2b)
2026-10-23 15:19:49 +02:00
jschoubben
a48279b31a
Fill an assigner ask's answer from the view's answer under its view key, once and never for an ask that needs proof (issue 1297 B10)
2026-10-23 15:19:37 +02:00
jschoubben
034a6de9a7
Make the module mesh-delivery-assigner: its manifest's reads and states, its own credential and the states it announces, so the controller grants it what R5 reads (issue 1297, subtask B2a; ADR 0528, ADR 0429 §1)
2026-10-23 15:19:06 +02:00
jschoubben
e7ed48b81a
Give the command an answer verb, so the operator answers a hold or restore ask from a terminal as in the page (issue 1297 B9b)
2026-10-23 15:18:04 +02:00
jschoubben
f7dd4ab586
Let the view answer the assigner's asks that need no proof, under the ask's view key, and refuse the merge's Approve on the phone's behalf (issue 1297 B9a)
2026-10-23 15:17:40 +02:00
jschoubben
57b0030258
Show every difference between the assigner's wants and the controller's sends with its rule, so the operator sees what holds a node back (issue 1297 B8)
2026-10-23 15:15:32 +02:00
jschoubben
4ffe5f4d52
Start a never-judged head's check before the re-judges a trunk move asks, oldest first (issue 1897 S1)
...
mesh/delivery-group group feat/fastcheck delivered: every member is delivered
mesh/check checking 4ffe5f4d5243 on 85aca46348a0 | novox/mesh-delivery#25 in group feat/fastcheck
A new pull request waited 25 to 45 minutes behind every open pull request's re-judge after a
merge. The semaphore becomes a ranked admission (ADR 0536 §4); checker_status names the
waiting checks by kind.
2026-10-23 14:09:42 +02:00
jschoubben
2bdb8d0e00
Ask the Go build module to run the candidate when a merge changes it, and say in the line which program judged (issue 1898 K3)
...
A change to mesh-build-go was judged by the installed module it replaces, so such pull
requests were merged by hand. ADR 0535 §1, §2, §4, §5.
2026-10-23 14:06:57 +02:00
jschoubben
75a4821eff
Merge pull request 'Make checker_status count only steps that can still run, so a key a build module left running is not read as a full node (issue 1890)' ( #24 ) from fix/1890-checker-stale-steps into main
...
Reviewed-on: #24
2026-10-23 11:01:10 +00:00
jschoubben
e762028760
Make checker_status count only steps that can still run, so a key a build module left running is not read as a full node (issue 1890)
...
mesh/check pass e76202876032 on b714eab995a5 | unit 422 run, 0 kept | integration 467 run, 0 kept | over bound: integration (slowest integration mesh-…
The checker's own places are released when a step ends or its wait passes the step bound; checker_status read every
'running' key in the build modules' steps buckets as a step in flight, so keys left by stopped, restarted or unassigned
build modules looked like full nodes. It now lists them under left_running with why (past the bound, module not on the
node, module not running), and leaves hq-only groups out of the unjudged candidates.
2026-10-23 09:03:45 +02:00
jschoubben
36bf3b7143
Merge pull request 'The builder says it writes references only once its build modules proved it (issue 1886, ADR 0522)' ( #23 ) from fix/1886-builder-says-references into main
...
Reviewed-on: #23
2026-10-23 00:26:18 +00:00
jschoubben
9fad90ee89
Say that the builder writes references only once each build module answered one (issue 1886, ADR 0522 review)
...
mesh/merge-gate head 9fad90ee890a merged into trunk b714eab995a5 — pass: builds mesh-delivery-builder → novox; no bus step; the change touches no module of…
mesh/repo-check head 9fad90ee890a merged into trunk b714eab995a5 — pass: its merge-check.sh passed
mesh/delivery-group group fix/1886-builder-says-references delivered: every member is delivered
mesh/check failed: integration: github.com/novox/mesh-controller/internal/identity.TestACertificateChainsToTheMeshsOwnAuthority: authority_test.go:45:…
The references come from the build modules' own pushes, so a new builder beside
an old build module writes none; saying it at start would send the controller
to keys that fail not stored.
2026-10-23 00:52:50 +02:00
jschoubben
4b8b1c047c
Say in the builder's own bucket of instances that it writes references (issue 1886)
...
The controller delivers from the builder's keys only while a running builder
says its done keys name references; a builder from before R4e says nothing,
so R4e's own delivery is asked of build-agent instead of waiting for ever.
The say is put once started and taken away when stopped.
2026-10-23 00:48:28 +02:00
mesh-tools
b714eab995
Merge pull request 'R4e (mesh-delivery): the builder pushes and keys artifacts by reference, the checker's verdict and try, the view, and the checker's owed state read by the forge' ( #22 ) from feat/r4e into main
2026-10-22 22:13:05 +00:00
jschoubben
efca168c55
Stop the forge bridge performing mesh/check: the forge module writes it (R2-1)
...
mesh/repo-check head efca168c5522 merged into trunk 0e372c87f1df beside mesh-catalog#457@896bd883 +1 more — pass: its merge-check.sh passed
mesh/merge-gate head efca168c5522 merged into trunk 0e372c87f1df — pass: group feat/r4e composed: every machine composes with the change as it did without …
mesh/delivery-group group feat/r4e delivered: every member is delivered
mesh/delivery covered after its stop: a later walk that contains it was delivered: plan-1792707174627079192 (novox/mesh-delivery at b714eab9 into main, d…
mesh/check failed: unit: ..test: node:internal/modules/esm/resolve:989 | efca168c5522 on b714eab995a5 | unit 2092 run, 0 kept, 3 skipped | integration…
R4e round 2 finding R2-1, ADR 0521: nothing in the delivery plan orders the
forge module before the bridge, and the forge module's durable consumer keeps
its deliver policy when its filters change, so a check.status emitted before
it consumed the event was lost. The forge module now watches the checker's
owed state and writes mesh/check itself, once per revision.
The bridge emits no check.status, declares no emits, and neither reads the
checker's owed nor hears its stream; OwedAct still refuses mesh/check. The
integration test shows the bridge calls no tool and publishes nothing of its
own when the checker owes mesh/check.
2026-10-22 21:40:09 +02:00
jschoubben
19d06163de
Announce the checker's states, owed readable, so the forge module may read it (R2-1)
...
R4e round 2 finding R2-1, ADR 0521: the forge module writes mesh/check from
the checker's owed state, read by a watch, because no event order between the
forge bridge and the forge module is kept by the delivery plan. A reader is
granted from the owner's announcement (ADR 0495 §2-§3), and the checker
announced nothing. It now says every state it keeps, with owed, previews and
verdicts readable: the forge module and the bridge read owed, the indexer
previews, the gate verdicts.
2026-10-22 21:38:53 +02:00
jschoubben
0997b071a3
Pin every R4e member module to mesh-sdk's final R4e head 104533e8, which holds review fixes S1 and S2, so the group pins one SDK
2026-10-22 21:29:20 +02:00