jschoubben
32542ebc14
Keep an unreadable manifest's inputs and judge its verdict again at start, so an upgraded SDK clears it (issue 1923)
mesh/check pass 32542ebc14c3 on 7a88eb0a5609 | unit 122 run, 366 kept | integration 132 run, 414 kept | composition passed on novox
2026-10-23 22:17:09 +02:00
jschoubben
fae4d48e09
Merge pull request 'R4g+R5 (mesh-delivery): builder and checker put asks, the assigner and its composition check, the view's wants and backlog (design 47)' ( #27 ) from feat/r4g into main
...
Reviewed-on: #27
2026-10-23 17:49:01 +00:00
jschoubben
d32ec6b7f8
Say what the builder, the indexer and the watchman do since R4g in their comments: no build-agent is asked, no build record moves a fingerprint, no checks-running bucket is mirrored (issue 1887, review round 2 item 6)
2026-10-23 16:47:36 +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
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
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
1dc9d80cfb
Keep a key written ahead of the source head and a key with no path when reconciling (issue 1900)
2026-10-23 14:44:14 +02:00
jschoubben
26bfdbb637
Drop the indexer's modules keys the trunk no longer holds, at each merge and at start (issue 1900)
2026-10-23 14:31:55 +02:00
jschoubben
612658e788
Ask the forge for the objects of a merge's named paths in the indexer, the one reader of a manifest's paths, and narrow the module's tree from the answer (issue 1758, I6 reworked; ADR 0499 §2 §3, ADR 0495 §1, L8)
...
The manifest invokes gitea.gitea_commit_trees. A forge that cannot say gives the module none with its words.
2026-10-22 18:24:38 +02:00
jschoubben
ece328d0cc
Give a candidate's module its named paths' objects from the preview, so the builder's fetch for it names them (issue 1758, ADR 0499 §4; mesh-sdk CandidateModule.Paths)
2026-10-22 18:20:37 +02:00
jschoubben
b39090aab9
Read manifests with mesh-sdk's ParseManifestForInputs in the indexer and the builder, so claude-code, dunst and xterm are built too (issue 1751)
...
The indexer's own copy goes. Pins mesh-sdk feat/r4e-sdk e76a5a3 in every module of the group.
2026-10-22 18:20:37 +02:00
jschoubben
23daa2c03c
Take a module's tree input from the paths its artifacts name, by mesh-sdk's NamedTree, and keep their objects and each artifact's paths, so a module outside them moves for no change there (issue 1758, I7 and the indexer's I8, ADR 0499 §2 §3)
...
A merged message or a preview without the objects gives the module none, naming the paths. Every other module keeps its
directory's tree. Module.ArtifactPaths is filled for the checker (the lead's interface).
2026-10-22 18:14:30 +02:00
jschoubben
e81ef8bb63
Read a manifest whose config value falls back to a predefined key, so claude-code, dunst and xterm get a new-form fingerprint (issue 1751, ADR 0348 §7)
...
The indexer holds no published list of predefined keys; each key a value names is taken as the value declares it.
No fingerprint input comes from the list: the gate and the controller still judge the value.
2026-10-22 18:11:21 +02:00
jschoubben
af4eaefb14
Read the controller's build records only for the builder's own input and to fill a key's missing directory once, so a key written before paths gets one with no merge (issue 1851 I3, issue 1614)
...
Both reads go in R4g with build-agent. A path a key names is never overwritten, and no fingerprint changes.
2026-10-22 18:09:56 +02:00
jschoubben
9f7e082688
List a repository's modules from the merged message's manifests and the indexer's own bucket, not the controller's build records, so a new module gets a value and a key with no build asked (issue 1851, I1 I2 I4, ADR 0501 §6, ADR 0453 §6)
...
I1: a merge writes each module its manifests name, at its directory. I2: a pull request's changed directory, a
preview's touched module and a source revision's modules come from the modules bucket (a module a pull request adds is
found in the preview by its manifest). I4: the value of today's form (fp, none) is no longer written, since it was
computed from the build records; mesh-sdk keeps it readable until R4g. One commit: the three share applyMerged and its
tests. Pins mesh-sdk feat/r4e-sdk 9cb4d59.
2026-10-22 18:08:48 +02:00
jschoubben
a2a5167d72
Write a preview of the conflicts for a head that does not merge, and give the candidate's modules the reason; pin mesh-sdk to the R4c-5a head (issue 1445)
2026-10-21 21:25:45 +02:00
jschoubben
4242fb5b0b
The indexer gives a candidate's touched module the fingerprint its merge preview gives it, and wakes on the checker's preview.written without a restart; pin mesh-sdk to the R4c-5a head (issues 1445, 1681)
2026-10-21 21:17:09 +02:00
jschoubben
61fea8314f
Compute from a build of build-agent only once a toolchain is read, so a restart drops no fingerprint; fixtures as live (issue 1727)
mesh/merge-gate head 61fea8314fe8 merged into trunk 318064ce206d — pass: builds mesh-delivery-indexer → novox; no bus step; every machine composes with the…
mesh/repo-check head 61fea8314fe8 merged into trunk 318064ce206d — pass: its merge-check.sh passed
2026-10-21 16:45:51 +02:00
jschoubben
5f9ed2b886
Take the builder's Builder input from build-agent's newest trunk build record, not its absent fingerprint, so modules get a new-form fingerprint (issue 1727)
2026-10-21 15:49:33 +02:00
jschoubben
3bd2a065f9
The indexer writes '.' for a root module's path and the toolchains each fingerprint was computed with (issue 1615)
2026-10-21 11:33:49 +02:00
jschoubben
07a28b03c4
The indexer writes each module's directory into modules.<m> and keeps it (issue 1606, ADR 0478 clause 8)
2026-10-21 11:16:16 +02:00
mesh-tools
a5da6079de
Write each module once per merge and watch a build module's toolchains bucket on its toolchain.reported event, with no timer (issue 1444, review round 1)
mesh/repo-check head a5da6079de01 merged into trunk 340bf643883d beside mesh-catalog#389@bcee61ed — pass: its merge-check.sh passed
mesh/merge-gate head a5da6079de01 merged into trunk 340bf643883d — pass: group feat/r4c3-build-modules composed: every machine composes with the change as …
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792582266656254343 (novox/mesh-delivery at d68d7ef3 into main…
mesh/delivery-group group feat/r4c3-build-modules merged: every member is merged
2026-10-20 21:02:44 +00:00
mesh-tools
127ac64cce
Leave an artifact without its lock file out of Locks (issue 1459) and read the build modules' toolchains (issue 1444), part 2 of 2
2026-10-20 20:48:30 +00:00
mesh-tools
74fef7dd5a
Recompute the new-form fingerprints when a build module reports its toolchain (issue 1444), part 1 of 2
2026-10-20 20:47:35 +00:00
mesh-tools
f69a561a16
Test how a manifest and lock hashes become a module's new-form inputs (issue 1450, design 47 R4c-2)
2026-10-20 18:55:54 +00:00
mesh-tools
27bfd83fa0
Test the kept manifests, the new-form reasons and the candidate's manifests against real files (issues 1449, 1444, 1451, design 47 R4c-2)
2026-10-20 18:55:29 +00:00
mesh-tools
a75d9cc851
Keep manifests and say why no new-form fingerprint exists, so the group check can start from facts (issues 1449, 1450, 1444, 1451, design 47 R4c-2)
2026-10-20 18:54:28 +00:00
mesh-tools
d650a41ba6
Copy the real manifests the indexer's new-form tests read (issues 1450, 1444)
...
Fixtures are copied from the writer, never written by hand: four catalogue manifests at mesh-catalog a67f0196 and build-agent's at mesh-controller f2d7bc94.
2026-10-20 18:48:08 +00:00
mesh-tools
05c180cf87
Add the indexer's source revision logic and its tests that the last commit named (issue 1344)
2026-10-20 00:31:19 +00:00
mesh-tools
409c41d4ae
Stamp the modules with the gate's source revision, read from source.main (issue 1344)
2026-10-20 00:30:52 +00:00
mesh-tools
3c655c5ab4
Write a failed build as the controller does, an outcome with failed set (issue 1281)
mesh/repo-check head 3c655c5ab449 merged into trunk 6a23627426c6 — pass: its merge-check.sh passed
mesh/merge-gate head 3c655c5ab449 merged into trunk 6a23627426c6 — pass: group fix/1281-outcome-is-a-build composed: every machine composes with the change…
mesh/delivery-group group fix/1281-outcome-is-a-build merged: every member is merged
2026-10-19 22:47:41 +00:00
mesh-tools
8ffcf02a9c
Take the SDK that counts a stateless build record as an outcome; fixtures in the controller's layout (issue 1281)
2026-10-19 22:44:21 +00:00
jschoubben
4b8e71370c
Recognise a trunk build by repository identity and an empty ref in the indexer and the view (issue 1281)
...
mesh/repo-check head 4b8e71370cc2 merged into trunk fa4be27c1e40 — pass: its merge-check.sh passed
mesh/merge-gate head 4b8e71370cc2 merged into trunk fa4be27c1e40 — pass: group fix/1281-trunk-builds-by-repository composed: every machine composes with th…
mesh/delivery-group group fix/1281-trunk-builds-by-repository merged: every member is merged
Build records name their repository by clone URL and a plan-asked build has no ref, so no module fingerprint was ever written or compared; both now use the SDK's tests.
2026-10-19 22:39:51 +02:00
jschoubben
677f94e901
Say which pull requests are open and drop every other candidate, so the candidates hold only open pull requests (issue 1279, ADR 0443)
mesh/delivery-group group fix/1279-consumers-from-now rejected: a member's own check failed
mesh/merge-gate waits for its group's composed check
mesh/repo-check head 677f94e9012b merged into trunk 1325c8b452c8 beside mesh-controller#400@a0c971ce — fail: its merge-check.sh failed: --- FAIL: TestBridg…
mesh/delivery superseded: a newer head of the same pull request
2026-10-19 21:56:42 +02:00
jschoubben
c084a311a1
Write each module's source fingerprint at a trunk merge in the indexer (issues 1239, 1209)
2026-10-19 15:03:57 +02:00
jschoubben
4e87c4e485
Keep the candidate groups from the forge bridge's pull messages in a new indexer module (issue 1238)
2026-10-19 15:00:25 +02:00