jschoubben
588cfd54bb
mesh-delivery-indexer: keep a merged member in its group's candidate until every member merged, so the heads the Approve covers hold and no new check starts for the members left (issue 1921, issue 1791, try speed S9)
2026-10-25 01:18:20 +02:00
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