jschoubben
f13d42abb4
Give route-proxy a new build: the controller's sweep removed its last build's files from the store, so novox and ace cannot apply (issue 1933)
2026-10-24 02:37:06 +02:00
jschoubben
fdf26a1fe2
Merge pull request 'A module the catalogue no longer holds ends deleted instead of failing the plan; vendor/ goes; tests name verbs that exist (issues 1922, 1305, 1931)' ( #449 ) from fix/1922-removed-module into main
...
Reviewed-on: #449
2026-10-23 23:47:05 +00:00
jschoubben
343e271ec7
Integration tests stop naming the verbs R4g removed (issue 1931)
mesh/check checking 343e271ec794 on fdf26a1fe29f
2026-10-23 23:21:39 +02:00
jschoubben
05c872485a
Delete the committed dependencies; builds resolve by go.sum (issue 1305)
2026-10-23 22:16:09 +02:00
jschoubben
12dd2bb3f0
A module the catalogue no longer holds ends deleted instead of failing the plan; the unsent hint names release-backlog (issue 1922)
2026-10-23 22:15:18 +02:00
jschoubben
5831eec770
Merge pull request 'R4g+R5 (mesh-controller): the controller asks no build, build-agent and the merge gate go, register by reference (design 47)' ( #448 ) from feat/r4g into main
...
Reviewed-on: #448
2026-10-23 17:50:22 +00:00
jschoubben
c9a7102bc5
Set aside a retired seat's consume the trunk catalogue still holds, and say it, so a group that retires a seat passes its check
mesh/delivery failed: its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
mesh/delivery-group group feat/r4g failed: a member failed
mesh/check checking c9a7102bc53b on 791786d5b87f | novox/mesh-controller#448 in group feat/r4g
2026-10-23 18:05:06 +02:00
jschoubben
67279199e9
Say the trunk rule as ADR 0534 §6 has it in the registration's comment
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: github.com/novox/mesh-controller/internal/broker.TestTheCataloguesDerivedSubjectsMeet: agreement_catalogue_test.go:130: judge…
2026-10-23 17:19:39 +02:00
jschoubben
9d2a9e62d1
Merge remote-tracking branch 'origin/fix/forge-requires-no-status' into feat/r4g
2026-10-23 17:18:58 +02:00
jschoubben
b345d10bec
Pin mesh-sdk at feat/r4g's head a2c813a6, its test fixture fix, with go.sum tidied
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/checks/config.TestTheUnmovedListHoldsNoModuleTheTrunksDoesNot: realtree_test.go:14: mesh-cata…
2026-10-23 17:06:08 +02:00
jschoubben
13842a7234
Grant the builder the build seats' streams' information and messages by name, so its take-over at start can tell an ask its key names is on its stream (issue 1910)
mesh/delivery-group group feat/r4g rejected: a member's own check failed
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: g14: novox/mesh-catalog#464: checks/health/go.mod names mesh-sdk a9560890ee26, which is neither on mesh-sdk's trunk nor the group's…
2026-10-23 16:59:03 +02:00
jschoubben
4238318601
Pin mesh-sdk at feat/r4g's head a9560890, re-vendor it and capture its conformance events there (R4g)
2026-10-23 16:54:07 +02:00
jschoubben
758c8e84e5
Bound the build seats' workers' deliveries, so an ask no run ends is offered at most five times even when the holder that says it is poison dies too (issue 1907)
2026-10-23 16:42:13 +02:00
jschoubben
9222575ae9
Vendor the dependencies again for R4g's go.mod (mesh-sdk 9205222a, the mesh-host replace as before), so build-agent compiles the controller offline in the group's first tier (issue 1305)
2026-10-23 16:38:31 +02:00
jschoubben
c5b8fca8bd
Revert "Delete vendor/ and the route proxy's: the build module fetches the modules, the root image builds with -mod=mod (issue 1305, C6)"
...
This reverts commit 9c4bf1f08b .
2026-10-23 16:37:40 +02:00
jschoubben
ff543d3def
Take the watchman's grant on the build seats back: a waiting ask has no pulse, a taken one is read from the steps (issue 1908)
2026-10-23 16:35:28 +02:00
jschoubben
ef211faefb
Prove the registration by hand reads back as a build and is held by the sweep, and name the store check as the test's limit (issue 1888, C8b)
2026-10-23 16:34:29 +02:00
jschoubben
3c247e80af
Fix the view grant test's consumer subjects (issue 1887 A8)
2026-10-23 16:32:43 +02:00
jschoubben
bb0d5e17db
Grant the watchman the build seats' accept subjects and the view the seat workers' information, each by name, so the backlog and the waiting-ask pulse read live (issue 1887 A8)
2026-10-23 16:32:32 +02:00
jschoubben
24ad859629
Record the checksums of mesh-sdk feat/r4g 9205222a for the group's modules (R4g)
2026-10-23 16:26:11 +02:00
jschoubben
5ccc87f4d0
Capture mesh-catalog at feat/r4g (2246ccc4) with the templates its manifests name and its predefined.json, and lay the copy out as a repository's root
...
The catalogue's manifests moved their content into template files and fall back to predefined keys, so a copy of
module.json alone no longer passes the catalogue's own check; the bus's Dockerfile is gone from the catalogue.
2026-10-23 16:24:14 +02:00
jschoubben
68c1220e87
Pin mesh-sdk at feat/r4g's head 9205222a, the merge of lanes A, B, S8 and F1, and capture its conformance events there
...
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
2026-10-23 16:22:07 +02:00
jschoubben
5b5cd6160a
Merge branch 'feat/r4g-asks' into feat/r4g
2026-10-23 16:20:32 +02:00
jschoubben
d7d70cd539
Merge branch 'feat/r4g-assigner' into feat/r4g
2026-10-23 16:20:32 +02:00
jschoubben
df70ca43a7
Take the controller's publish grants on node-build-agent and mesh-build-machine away, with the cancelled sets and the redelivery of its own asks: it asks no build seat (ADR 0525 §10, C3a)
2026-10-23 16:13:43 +02:00
jschoubben
f60c742d93
Prove the grant through the send of the bus's machine (overTheBus.declare), so removing the write from the live path fails the test (issue 1394, review round 1 item 4)
2026-10-23 16:13:42 +02:00
jschoubben
2db5dcdcb4
Write the hand act of register --reference after the registration was made, not before, and test the why and the record (issue 1888, C8b)
2026-10-23 16:12:16 +02:00
jschoubben
d9cdb3615d
Test that the builder's record names its key and fingerprint after a plan that moves it (issue 1851, C5 criterion)
2026-10-23 16:11:07 +02:00
jschoubben
dec3b83e66
Test that the builder, a build module and the controller are taken from the builder's keys and nothing reaches node-build-agent (issue 1851, C2 criterion)
2026-10-23 16:11:07 +02:00
jschoubben
2e36a63096
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
eb8286fc68
Merge feat/r4g-assigner into feat/r4g: lane B's grants bucket and its writer beside lane C's deletions
...
The controller's readable states, its bucket lists and the composed golden file keep lane C's removal of the
checks-running and plans-building buckets and the build agent's check subjects, and add lane B's grants bucket.
2026-10-23 15:59:52 +02:00
jschoubben
5540fd4f85
Find the catalogue's repository by its URL or seat source, and fail a plan whose catalogue repository is nowhere, so a take-in from a key no longer waits for ever (issue 1902)
2026-10-23 15:57:30 +02:00
jschoubben
e419d0182f
Delete the builder, the build asks, the build queue and the merge gate: the builder's keys are the only way a module is built (issues 1851, 1299, 1318; C2b-C5, C10)
...
The controller asks no build of anybody (ADR 0501 §5, ADR 0525 clause 6, ADR 0503 §3). Every module of a walk is taken from the
builder's done key; a key not done yet waits, named in the plan, and never fails it.
- C2b/C2c: internal/builder and cmd/mesh-controller's asks go (askABuild, onlyTheBuildersOwn, buildOneAsked, takeIn from an
outcome, buildAgentsOwn, the builder's say and its fallback, the daemon hearing an outcome). The server follows the retired
seats' built subjects only to let go of them, because the installer's carried user list names them.
- C2d: replay, queue, cancel, clear, kill, pause, resume, delivery-check, check-here and merge-gate are refused by name.
- C3: the check queues (CHECKS_READY, CHECKS_OTHER) and their workers, the checks-running and plans-building buckets and
their grants, the build queue and its hold (plans_building.go, queue.go, link/holds.go, builds_nats.go, checks_nats.go).
- C4: merge_gate*.go, the pull request's repo-check path, the Checked event and its layers; a pull request asks the
controller nothing but to tell mesh-config what its head declares.
- C5: the builds bucket is written only by key_takein.
- C10 (help and refusals): the terminal's help lists only what is served.
Integration tests of the plan's tiers, sends, stops and retries now run on a stand-in builder with a done key for every
module (walk_keys_scaffold_integration_test.go); the tests of the asks, the queue, the merge gate and the replays are deleted.
2026-10-23 15:55:15 +02:00
jschoubben
5ca4f14479
Derive a worker per kind for the build seats and grant their users to put asks, so a build node pulls delivery, check and recheck in order and a session cannot ask (issue 1887 A6, ADR 0525 §2)
2026-10-23 15:54:45 +02:00
jschoubben
c43883910d
Write grants.<module>.<fp> once the bus's user list carrying a module's manifest at that fingerprint is sent, so the assigner's sixth rule reads that its credential exists (issue 1394, subtask C9b; ADR 0528 clause 2, ADR 0429 §6)
2026-10-23 15:39:40 +02:00
jschoubben
548681cc4e
Declare the controller's grants bucket, written by the controller alone and readable through mesh-controller.grants, so the assigner can read its sixth rule's key (issue 1394, subtask C9a; ADR 0528 clause 2); the SDK pin moves to the layouts' commit, captured beside
2026-10-23 15:39:40 +02:00
jschoubben
9c4bf1f08b
Delete vendor/ and the route proxy's: the build module fetches the modules, the root image builds with -mod=mod (issue 1305, C6)
2026-10-23 15:14:58 +02:00
jschoubben
6300a5b31c
Delete merge-check.sh, check-nested-modules.sh, the store-tests list and RELEASE-57: the checker runs the build module's steps, nested modules by convention (issue 1294, C7a and C7b)
2026-10-23 15:14:01 +02:00
jschoubben
505694c424
Register a module at artifacts the store holds, by hand, recorded as a build and a hand act, so the controller can be delivered without the builder (issue 1888, C8a and C8b)
2026-10-23 15:13:17 +02:00
jschoubben
72186815e3
Delete the build-agent module and the builder program: the build module builds, the checker checks (issue 1851, C2a)
2026-10-23 15:07:57 +02:00
jschoubben
526eed99fa
Drop the toolchain image from the facts and the dependency edges: no module is compiled in one any more (issue 1851, C1b)
2026-10-23 15:07:29 +02:00
jschoubben
b506852388
Move the Go build source reader out of internal/builder so the builder can go (issue 1851, C1a)
2026-10-23 15:06:31 +02:00
mesh-tools
791786d5b8
Merge pull request 'Wait out a resolver that does not answer in a build's registry step, and say it was the resolver (issue 1748)' ( #447 ) from fix/1748-registry-wait-retries-a-lookup into main
2026-10-23 11:20:15 +00:00
jschoubben
0b312218f9
Wait out a failed lookup of the registry's name in a build, and say it was the resolver (issue 1748)
mesh/check pass 0b312218f90f on c834e4f82137 | unit 1762 run, 0 kept, 4 skipped | integration 3040 run, 0 kept, 16 skipped | over bound: integration (…
2026-10-23 13:03:17 +02:00
mesh-tools
c834e4f821
Merge pull request 'Keep every refused build by its id, so a plan never settles a refused build built and sends the old version (issue 1713)' ( #446 ) from fix/1713-keep-every-refusal into main
2026-10-23 10:58:08 +00:00
jschoubben
149f89e8f9
Keep every refused registration by its build id, so a Retry never settles it built
...
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792753090890815254 (novox/mesh-controller at c834e4f8 into ma…
mesh/check pass 149f89e8f9bf on 0173d9c70e59 | unit 1759 run, 0 kept, 4 skipped | integration 3037 run, 0 kept, 16 skipped | over bound: integration (…
A build heard and recorded and not registered kept its refusal only when a
plan was open or the plans were held. A tier's first failure fails its plan,
so later refusals were lost; a Retry then settled those builds built from
their records, sent the modules' old versions and reported the plan done.
A build without a readable manifest never reached its plan at all.
Keep the refusal in the store and the process whatever the plans' state, and
fail the asking plan by the build's id when the module is not known.
Issue 1713.
2026-10-23 12:13:33 +02:00
jschoubben
b2af3d654f
Trust a trunk whose whitelist adds the operator's own login, never an agent's (ADR 0534 §2, §6)
...
The gitea module keeps the operator's login beside mesh-tools on every main so
the operator can merge by hand; an agent's account there is still refused.
2026-10-23 12:10:11 +02:00
jschoubben
7676e67c5e
Trust a module's trunk for who can merge into it, not for a required status (ADR 0534 §6)
...
The forge requires no status to merge any more (ADR 0534 §1); a trunk is
trusted when it takes no push, its merge whitelist names mesh-tools alone and
no administrator merges past its rule, so only mesh-delivery lands a commit
there, on a passing mesh/check and the operator's Approve. The old rule failed
the 11:51 delivery plan once mesh-catalog's status was unticked.
2026-10-23 12:02:00 +02:00
mesh-tools
0173d9c70e
Merge pull request 'Keep the admin address's query in a test database's address, so store tests reach the checker's socket store (issue 1889)' ( #445 ) from fix/1889-identity-store-ready into main
2026-10-23 07:37:06 +00:00
mesh-tools
89abce5df9
Merge pull request 'Judge each machine on a plan's last send and resume a plan lost to silence with plans retry, so a resumed plan is not failed by its own old sends (issue 1886, ADR 0531)' ( #444 ) from fix/1886-resume-times into main
2026-10-23 07:26:31 +00:00