jschoubben
bec9585d50
Run an ask no more once its stream delivered it past AskRuns, failing its step with why, so a run that kills its node is not offered to each build node in turn (issue 1907)
2026-10-23 16:41:12 +02:00
jschoubben
fc4f57c4b3
Restart an ask's bound at each run's start, also on the same node, so a step redelivered after its build module was replaced is not cut by the killed run's time (issue 1887, review: issue 734 path; ADR 0525 §6)
2026-10-23 16:36:46 +02:00
jschoubben
88fa74ce5e
Bound an ask's step from its start on the node that took it, not from its put, so an ask waiting in its stream during a large rebuild is never failed and asked twice (issue 1887, review round 2 item 1; ADR 0525 §3, §6)
2026-10-23 16:32:21 +02:00
jschoubben
9205222a98
Merge branch 'feat/r4g-fallback' into feat/r4g
2026-10-23 16:19:25 +02:00
jschoubben
285566eed1
Merge branch 'feat/r4g-scripts' into feat/r4g
2026-10-23 16:19:25 +02:00
jschoubben
51756ee9a4
Merge branch 'feat/r4g-asks' into feat/r4g
2026-10-23 16:19:24 +02:00
jschoubben
d7375c9811
Add mesh-pack: a hand build with the build module's recipe and mesh-sdk's own pack (F1)
2026-10-23 16:12:23 +02:00
jschoubben
232ded26ea
Delete both merge-check scripts; the type check runs before npm test (issue 1295, S8; ADR 0529)
...
gofmt and vet are the Go build module's, the unit bound the checker's.
2026-10-23 16:10:46 +02:00
jschoubben
691c97ec31
Ask a check's digest as the candidate under the runner and plan as any other when the installed module ignores it, as ADR 0535 §2 and §4 judge (issue 1887 A5a)
2026-10-23 16:04:01 +02:00
jschoubben
ba092d543f
Run the levels of one check in one ask after one fetch, keeping nothing under the candidate's runner or a digest without the siblings, as ADR 0525 §3 says a check ask is (issue 1887 A5a)
2026-10-23 15:59:15 +02:00
jschoubben
34338df950
Key a building key's asks by build seat language, so a builder taking it over knows whose steps to watch (issue 1887 A4b)
2026-10-23 15:44:57 +02:00
jschoubben
6003da0a58
Put an ask on its build seat's stream and read its step, and name a building key's asks, so the builder and the checker ask no node and a restarted builder never asks twice (issue 1887 A4a, A4b)
2026-10-23 15:43:59 +02:00
jschoubben
3e5d4c30ff
Let a composition not run say why, the assigner not running among it, and name the indexer's words for a removed module, so a check never waits for a composition nobody makes (issue 1297, B3d)
2026-10-23 15:41:55 +02:00
jschoubben
1672f40233
Serve a build seat's current, pause and resume from the SDK, naming the asks running, so the three build modules hold their seats one way (issue 1887 A3node, A9a, ADR 0525 §10)
2026-10-23 15:38:03 +02:00
jschoubben
e1dca0a39f
Release an ask's workspace when its job ends, so a pulled build or check leaves nothing for the sweep (issue 1887 A3go, ADR 0509)
2026-10-23 15:30:32 +02:00
jschoubben
4b503f8d0d
Pull a build seat's ask through the bundle's runtime one at a time and settle it by id, so a tools bundle pulls by its capacity and order (issue 1887 A11)
2026-10-23 15:29:05 +02:00
jschoubben
8cd22892a3
Read a node's build capacity from the build module's own setting at every pull, defaulting to the builder's values, so the control-node pulls nothing (issue 1887 A7, ADR 0525 §5)
2026-10-23 15:23:03 +02:00
jschoubben
1f6fc027c0
Run a pulled ask's whole job with a build module's own step tools, kept verdicts taken after its digest, so both build modules run asks one way and their tools stay the hand path (issue 1887 A3, ADR 0525 §3, §8)
2026-10-23 15:22:25 +02:00
jschoubben
f625d98713
Lay out the assigner's ask value and name the asking a view answer is for, so a stale answer never fills a later asking of the same key (issue 1297 subtask B1c, for the view lane's B9 and B10)
2026-10-23 15:20:58 +02:00
jschoubben
c2967432e6
Refuse the build queue's verbs by name and drop the rows R4e removed, so a caller is told the backlog is the delivery view's and a pause the build seat's (issue 1887 A9b, ADR 0525 §9)
2026-10-23 15:20:27 +02:00
jschoubben
69041c5302
Retire the seat node-build-agent for one build seat per language, so a node's builds are pulled and paused at its build modules and a claim on the old seat names its replacement (issue 1887 A9a, ADR 0525 §2, §10)
2026-10-23 15:19:41 +02:00
jschoubben
792fb2ccfd
Keep a long ask alive with in-progress signals and leave a stopped holder's ask to the stream, so a node that dies hands its ask on (issue 1887 A2c, ADR 0525 §6)
2026-10-23 15:17:18 +02:00
jschoubben
89aa6fc17c
Pull nothing at capacity 0, take a new capacity at the next pull, and keep a node's pause on its pause key, so a paused node stays paused across a restart (issue 1887 A2b)
2026-10-23 15:16:46 +02:00
jschoubben
a1d73bdcf0
Pull a build seat's asks delivery first, at most the node's capacity, each ended on its own step key, so no part chooses a node or holds a check (issue 1887 A2a, ADR 0525 §4-§6)
2026-10-23 15:15:57 +02:00
jschoubben
d9384bcb23
Lay out the asks the view may answer and the view's answer key, refusing the merge's ask, so the view and the teller answer only what needs no proof (issue 1297 subtask B1c; ADR 0528 clause 6, ADR 0437 clause 10)
2026-10-23 15:12:40 +02:00
jschoubben
b9b9c5120c
Name an ask's step key <node>.<ask id> and its watch, so the asker learns which node took it and refuses other keys (issue 1887 A1b, ADR 0525 §6)
2026-10-23 15:11:44 +02:00
jschoubben
37eff6fe5c
Lay out the ask a build node pulls: its subjects, stream, workers and job, so builder, checker and build modules share one form (issue 1887 A1a, ADR 0525, ADR 0536 §4)
2026-10-23 15:11:39 +02:00
jschoubben
687d715e99
Lay out the controller's grants and the assigner's composition verdict under the checker's key, so the assigner's rule 6 and the checker's composition read one layout (issue 1297 subtask B1b, issue 1394; ADR 0528 clauses 2 and 5)
2026-10-23 15:11:34 +02:00
jschoubben
ec2bd3b990
Lay out the assigner's wants, holds and differences in mesh-sdk, so the assigner, the watchman and the view read one layout (issue 1297, subtask B1a; ADR 0528 clauses 1 and 4)
2026-10-23 15:10:09 +02:00
jschoubben
780be2fae5
Fetch through a bare mirror with git alternates, so a check transfers only new objects (issue 890, ADR 0536 §2)
2026-10-23 14:03:06 +02:00
jschoubben
6147a20454
Refuse a build step under a free-space floor and release workspaces, so a build node's disk is never filled (issue 1839)
...
mesh/merge-gate head 6147a2045467 merged into trunk 7aacbc162014 — pass: builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(…
mesh/repo-check head 6147a2045467 merged into trunk 7aacbc162014 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/delivery-group group fix/1839-build-floor delivered: every member is delivered
mesh/check failed: integration: meshbuildnode/cmd/mesh-build-node.TestAFixtureBundleBuiltTwiceHasOneDigest: build_integration_test.go:71: no toolchain…
buildstep.Floor refuses a step, naming the node, what is free and the floor
(20 GiB, build-agent's), while the work or cache filesystem is under it.
buildstep.Workspaces holds a workspace while a step runs on it, removes it
when its caller releases it, and sweeps one left unheld past ADR 0509's
two-hour bound.
2026-10-23 08:28:28 +02:00
jschoubben
22b70c82b0
Stand in the artifact store in the toolchain test's shelf: R4e's build modules require it (ADR 0513), and the group's composed check judges them at the catalogue's group head
mesh/repo-check head 22b70c82b0ab merged into trunk cdfc63cf102b beside mesh-catalog#457@896bd883 +1 more — pass: THE CHANGE ALTERS ITS OWN CHECK (go/merge…
mesh/merge-gate head 22b70c82b0ab merged into trunk cdfc63cf102b — 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-sdk at 7aacbc16 into main, done, …
mesh/check failed: unit: ..test: node:internal/modules/esm/resolve:989 | 22b70c82b0ab on 7aacbc162014 | unit 1675 run, 0 kept, 3 skipped | integration…
2026-10-23 00:03:06 +02:00
jschoubben
6aa8e869a3
Name no paths in mesh-sdk's own manifest until R4e is delivered: today's controller judges R4e's group and refuses the word (issue 1758, ADR 0499 §7, ADR 0503 §4)
mesh/merge-gate waits for its group's composed check
mesh/repo-check head 6aa8e869a3b6 merged into trunk cdfc63cf102b beside mesh-catalog#457@896bd883 +1 more — fail: THE CHANGE ALTERS ITS OWN CHECK (go/merge…
mesh/delivery-group group feat/r4e rejected: a member's own check failed
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: ace: novox/mesh-catalog#457: modules/gitea/go.mod names mesh-sdk 104533e8c0c9, which is neither on mesh-sdk's trunk nor the group's…
2026-10-22 23:57:26 +02:00
jschoubben
104533e8c0
S2: read a manifest for a merge's named tree as the indexer does
...
mesh/merge-gate head 104533e8c0c9 merged into trunk cdfc63cf102b — fail: builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(…
mesh/repo-check head 104533e8c0c9 merged into trunk cdfc63cf102b — pass: THE CHANGE ALTERS ITS OWN CHECK (go/merge-check.sh): main's version judged it; the…
mesh/delivery-group group feat/r4e rejected: a member's own check failed
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: modules/gitea.type-check: index.ts(263,29): error TS2345: Argument of type 'BranchProtection | null | undefined' is not assig…
catalogue.ParseManifestForInputs (issue 1751): a manifest falling back to a predefined key was narrowed by the indexer and not by a build module, two computations of one tree (novox/hq ADR 0499 clause 2).
2026-10-22 21:07:40 +02:00
jschoubben
259bfd0c2b
S1: keep no package.json or go.mod outside the named tree in a narrowed build
...
A file outside the key changed what is built (novox/hq ADR 0499 clause 4); a build that needs one names it among its paths.
2026-10-22 21:07:22 +02:00
jschoubben
875c680d98
Merge remote-tracking branch 'origin/main' into feat/r4e-sdk
...
# Conflicts:
# go/catalogue/state.go
# go/catalogue/state_test.go
# go/process/state.go
2026-10-22 20:37:49 +02:00
jschoubben
d1af87a83a
Leave a narrowed build only its named paths, manifest and locks, in one function for both build modules (issue 1758, ADR 0499 §4)
2026-10-22 18:31:07 +02:00
jschoubben
e76a5a31a0
Read a manifest for its build's inputs without the published list of predefined keys (issue 1751, dev-r4e-builder's request)
...
The indexer and the builder hold no list, so claude-code, dunst and xterm were refused;
ParseManifestForInputs takes each fallback as its value declares it and judges no
config value, refusing everything else ParseManifest refuses.
2026-10-22 18:18:55 +02:00
jschoubben
8892a11768
Merge remote-tracking branch 'origin/main' into feat/upgrade-safety
mesh/merge-gate head 8892a1176800 merged into trunk 4fac7810a1e4 — pass: group feat/upgrade-safety composed: every machine composes with the change as it d…
mesh/repo-check head 8892a1176800 merged into trunk 4fac7810a1e4 beside mesh-catalog#450@86ba54b0 +1 more — pass: its merge-check.sh passed, each part in i…
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792694058124013462 (novox/mesh-sdk at cdfc63cf into main, don…
mesh/delivery-group group feat/upgrade-safety delivered: every member is delivered
mesh/check failed: unit: ..test: node:internal/modules/esm/resolve:241 | 8892a1176800 on 4fac7810a1e4 | unit 3372 run, 0 kept, 7 skipped | integration…
2026-10-22 18:13:24 +02:00
jschoubben
b07e741c41
Say in the controller seat's verbs what R4e removes and what the checker now does (R4e, dev-r4e-controller's request via the lead; ADR 0501 §5, ADR 0503 §3, ADR 0429 §18)
...
build, rebuild, forget-checks and delivery-plan stay listed, refused by name; replay
is a dry run only; delivery-check asks nothing; try is the checker's.
2026-10-22 18:07:37 +02:00
jschoubben
72a477eb1c
Carry a candidate module's named paths, so the builder's fetch for a candidate names them (issue 1758, ADR 0499 §2, the builder lane's request)
2026-10-22 18:06:49 +02:00
jschoubben
8c3bfad86b
Run the run step's isolation proof only where bubblewrap is, under its own tag (issue 1309, S19, the lead's decision)
...
The try's toolchain container has no bubblewrap; the checker runs the isolation tag on
the build nodes, and merge-check.sh still vets it.
2026-10-22 18:06:10 +02:00
jschoubben
9cb4d59093
Keep each artifact's named paths in the modules value, so the checker needs no manifest to see a change touch them (issue 1758, ADR 0499, lead decision L8)
2026-10-22 18:00:24 +02:00
jschoubben
fd2ae83431
Name the error of a fetch whose lock waits for an unpublished package (issue 1587, ADR 0500 §6)
...
waits for: is the prefix the builder turns into a queued key with Waits; it is not
one of the errors held until the fingerprint changes.
2026-10-22 18:00:02 +02:00
jschoubben
4dd967e62f
Let a module that builds no artifact have a done key that can be delivered (issue 1613, the lead's request for the builder lane)
...
A done key needs its manifest digest, no longer an artifact; Referenced answers ok
for it, since no artifact lacks a reference.
2026-10-22 17:59:55 +02:00
jschoubben
ab2ca6e3a7
Push a done build's bundle or archive to the artifact store from the build module, in one shared client (issue 1587, ADR 0498 §1-§2)
...
buildstep.PushBlob uploads by digest unless the store holds it, waits out a store
refusing connections as mesh-build-image does, and names the store's own words;
BlobReference is the form the key and the controller check.
2026-10-22 17:59:14 +02:00
jschoubben
fc7c4e97e6
Stop committing the Go dependencies, which go.sum already pins (issue 1304, S8)
...
go/vendor's 810 files go and .gitignore names vendor/, as merge-check.sh already
said; every dependency resolves by go.sum and go mod verify fails by name.
2026-10-22 17:47:06 +02:00
jschoubben
f7cd91e49d
Accept a modules value with the new fingerprint alone, and say mesh/check is the required status (issue 1851, S7 and S16, ADR 0453 §6, ADR 0503 §3 §5)
...
FP and None stay readable for build-agent's path until R4g; the gate's status
comment and the checks verb now name mesh/check as what a main requires.
2026-10-22 17:46:56 +02:00
jschoubben
3b3cabd2b0
Prove a run step reaches no key, login, name or socket and leaves the caches unchanged (issue 1309, S19, ADR 0448 check)
2026-10-22 17:46:10 +02:00
jschoubben
f8b8f3a666
issue 1840/S2: take a narrowed watch's current values as a set, since the bus hands them in the order of their last revision
2026-10-22 17:45:58 +02:00