R4g+R5 (mesh-controller): the controller asks no build, build-agent and the merge gate go, register by reference (design 47) #448

Merged
jschoubben merged 38 commits from feat/r4g into main 2026-10-23 17:50:22 +00:00
Member

Design 47's last milestone, R4g+R5, one delivery group on feat/r4g.

  • build-agent, cmd/mesh-builder, internal/builder, the build queue and its hold, the merge gate and replays deleted; every plan module taken from the builder's done key (issue 1851, issue 1299, issue 1318, issue 1294).
  • The catalogue repository found in the take-in by either form of its address; a lookup error fails the plan loudly (issue 1902).
  • register --reference at the terminal, recorded as a build and a hand act (issue 1888; ADR 0526).
  • Broker: one worker per kind for the build seats, capped deliveries, named grants for the builder, view and asks (issue 1887, issue 1907); the controller's grant keys (issue 1394).
  • Registration trusts a trunk that requires no status (ADR 0534 §6).
  • vendor/ kept, regenerated: R4g's tier 0 is built offline by today's build-agent; it goes after the delivery (issue 1305 noted; ADR 0538).
  • The catalogue agreement tests set aside, and say, a consume of a retired seat's event: the check judges against the catalogue's trunk (ADR 0484 clause 4), which still consumes the build seats this group retires (ADR 0524 §5) until mesh-catalog #464 merges.

Reviewed-by: review-r4g-2@shanks at c9a7102bc5
Pushed-by: lead-47@shanks

Design 47's last milestone, R4g+R5, one delivery group on feat/r4g. - build-agent, cmd/mesh-builder, internal/builder, the build queue and its hold, the merge gate and replays deleted; every plan module taken from the builder's done key (issue 1851, issue 1299, issue 1318, issue 1294). - The catalogue repository found in the take-in by either form of its address; a lookup error fails the plan loudly (issue 1902). - `register --reference` at the terminal, recorded as a build and a hand act (issue 1888; ADR 0526). - Broker: one worker per kind for the build seats, capped deliveries, named grants for the builder, view and asks (issue 1887, issue 1907); the controller's grant keys (issue 1394). - Registration trusts a trunk that requires no status (ADR 0534 §6). - vendor/ kept, regenerated: R4g's tier 0 is built offline by today's build-agent; it goes after the delivery (issue 1305 noted; ADR 0538). - The catalogue agreement tests set aside, and say, a consume of a retired seat's event: the check judges against the catalogue's trunk (ADR 0484 clause 4), which still consumes the build seats this group retires (ADR 0524 §5) until mesh-catalog #464 merges. Reviewed-by: review-r4g-2@shanks at c9a7102bc53bac96b55a3336da380db07514f396 Pushed-by: lead-47@shanks
mesh-tools added 32 commits 2026-10-23 15:00:59 +00:00
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.
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.
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
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.
This reverts commit 9c4bf1f08b.
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…
13842a7234
Author
Member

Delivery novox/mesh-controller@c9a7102bc53b — failed since 2026-10-23T17:59:26Z

Delivery plan — builds build-agent, mesh-controller → novox; no bus step

  • tier 0: mesh-controller
  • novox: receives mesh-controller

Group feat/r4g: novox/hq@e8bd9171cd, novox/mesh-catalog@454fb8a918, novox/mesh-controller@c9a7102bc5, novox/mesh-delivery@b2c545c40a, novox/mesh-host@4b4bb09a05, novox/mesh-lab@4653b17e18, novox/mesh-media-catalog@f4f0bbcfe5, novox/mesh-sdk@a2c813a6b4, novox/mesh-tools-go@5023de36fd, novox/mesh-tools@860043fd7f, novox/okioki@e67d21e8b4

Transitions

  • 2026-10-23 16:06 (new) → proposed (announced): novox/mesh-controller#448's head announced
  • 2026-10-23 16:14 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-23 16:14 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
  • 2026-10-23 17:50 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
  • 2026-10-23 17:55 held → delivering (go): its walk started on a word that was not this owner's: the controller's own path, which waits for nobody, or a person's plans go
  • 2026-10-23 17:59 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@c9a7102bc53b` — **failed** since 2026-10-23T17:59:26Z **Delivery plan** — builds build-agent, mesh-controller → novox; no bus step - tier 0: mesh-controller - novox: receives mesh-controller **Group** `feat/r4g`: novox/hq@e8bd9171cdbc, novox/mesh-catalog@454fb8a918ad, novox/mesh-controller@c9a7102bc53b, novox/mesh-delivery@b2c545c40aec, novox/mesh-host@4b4bb09a05a0, novox/mesh-lab@4653b17e18a7, novox/mesh-media-catalog@f4f0bbcfe59c, novox/mesh-sdk@a2c813a6b468, novox/mesh-tools-go@5023de36fded, novox/mesh-tools@860043fd7fa0, novox/okioki@e67d21e8b448 **Transitions** - 2026-10-23 16:06 (new) → proposed (announced): novox/mesh-controller#448's head announced - 2026-10-23 16:14 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-23 16:14 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed - 2026-10-23 17:50 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on - 2026-10-23 17:55 held → delivering (go): its walk started on a word that was not this owner's: the controller's own path, which waits for nobody, or a person's `plans go` - 2026-10-23 17:59 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben added 1 commit 2026-10-23 15:06:10 +00:00
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…
b345d10bec
jschoubben added 4 commits 2026-10-23 15:19:42 +00:00
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.
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.
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…
67279199e9
jschoubben added 1 commit 2026-10-23 16:06:41 +00:00
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
c9a7102bc5
jschoubben merged commit 5831eec770 into main 2026-10-23 17:50:22 +00:00
jschoubben deleted branch feat/r4g 2026-10-23 17:50:23 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#448