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
jschoubben
08bc672488
Pin every R4e member module to mesh-sdk's final R4e head 875c680d, which holds main's #68 and #69 , so the group pins one SDK
2026-10-22 20:45:16 +02:00
jschoubben
91e68ac13b
Merge feat/r4e-builder into feat/r4e (R4e integration)
...
The checker's go.mod and go.sum conflicted on the mesh-sdk pin (checker lane 9cb4d59, builder lane e76a5a3): every
module touched is pinned to the sdk lane's newest head d1af87a until the final SDK head.
2026-10-22 20:29:53 +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
9a3f38629f
Prove on a real bus that a merge of mesh-sdk changing only what its lib does not name leaves its tree input and new form unchanged (issue 1758, I9, ADR 0499 check 6 in miniature)
2026-10-22 18:16:54 +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
96ba6bd3dc
Say the verdict in a line of at most 140 characters and owe the status mesh/check in the checker's bucket, which the forge bridge performs once per revision; the checker's stream checks wakes the readers of its buckets (issues 1682, 1683)
2026-10-21 21:20:42 +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
ebac167cd6
Move the indexer and builder to mesh-sdk main with the toolchains and root path (issue 1615)
2026-10-21 12:45:10 +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
ba7ce55887
Give the indexer a manifests bucket and the SDK that knows the new keys (issue 1449, design 47 R4c-2)
2026-10-20 18:53:40 +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
c93954e53c
Pin mesh-sdk to main's merge of #47 (88581d0a), the same tree as ba684e54 the review read
mesh/repo-check head c93954e53c8e merged into trunk 9c15112d935a beside mesh-catalog#380@cf5c0273 +1 more — pass: its merge-check.sh passed
mesh/merge-gate head c93954e53c8e merged into trunk 9c15112d935a — pass: group feat/r3e-the-gate composed: every machine composes with the change as it did…
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792478961597980735 (novox/mesh-delivery at 2520cc4a into main…
mesh/delivery-group group feat/r3e-the-gate merged: every member is merged
2026-10-20 06:33:01 +00:00
mesh-tools
14e9d56a22
Ask under each asking's own router id, spell the heads in lower case as the gate does, show a removed have plainly; pin mesh-sdk ba684e5 (review round 1: G2, T1, issue 1370)
2026-10-20 01:30:54 +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
35ff628458
Commit no module's dependencies: fetch them in the check, the pinned SDK from beside it (issue 1235)
mesh/delivery-group group feat/delivery-parts rejected: a member's own check failed
mesh/merge-gate waits for its group's composed check
mesh/repo-check head 35ff62845811 merged into trunk 7f618177d677 beside mesh-catalog#374@75957fc3 — fail: THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh):…
2026-10-19 15:27:37 +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