R4g+R5 (mesh-catalog): the build modules pull asks, scripts become tests, build-agent references go (design 47) #464

Merged
jschoubben merged 45 commits from feat/r4g into main 2026-10-23 17:49:44 +00:00
Member

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

  • mesh-build-go, -node, -image claim the node-build seats and pull asks with a capacity setting; they require node-tools; gofmt and vet before the unit level; the digest answered in the call (issue 1887, issue 1911, issue 1917; ADR 0525, 0529).
  • merge-check.sh and checks/ as Go tests, compared with the trunk's copy when the checker places it (issue 1293, issue 1295; ADR 0529).
  • mesh-issues' core pattern and owners (issue 1041); the gate's port without the controller's checks (issue 1318).
  • gitea: the forge requires no status on any repository; the repositories program removes existing required statuses once (with keep-main-rules false) and writes none; new repositories get no merge-check.sh; seat names of the old build agent gone (ADR 0534).
  • nats keeps main's mesh-sdk pin (only test subjects change), so the bus does not move.
  • mesh-build-go's ask-order integration test runs on a bus of its own (mesh-sdk testbus) and judges the order from the recorded start and end, not from when it looked (issue 1887).

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

Design 47's last milestone, R4g+R5, one delivery group on feat/r4g. - mesh-build-go, -node, -image claim the node-build seats and pull asks with a capacity setting; they require node-tools; gofmt and vet before the unit level; the digest answered in the call (issue 1887, issue 1911, issue 1917; ADR 0525, 0529). - merge-check.sh and checks/ as Go tests, compared with the trunk's copy when the checker places it (issue 1293, issue 1295; ADR 0529). - mesh-issues' core pattern and owners (issue 1041); the gate's port without the controller's checks (issue 1318). - gitea: the forge requires no status on any repository; the repositories program removes existing required statuses once (with keep-main-rules false) and writes none; new repositories get no merge-check.sh; seat names of the old build agent gone (ADR 0534). - nats keeps main's mesh-sdk pin (only test subjects change), so the bus does not move. - mesh-build-go's ask-order integration test runs on a bus of its own (mesh-sdk testbus) and judges the order from the recorded start and end, not from when it looked (issue 1887). Reviewed-by: review-r4g-2@shanks at c32474ee40f44eaf7cd7179140b9492c4d32d76c Pushed-by: lead-47@shanks
mesh-tools added 32 commits 2026-10-23 15:00:55 +00:00
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
This reverts commit e4ec060ac7.
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
Pin checks/health to the mesh-sdk that knows the seat node-build-go, so its real-tree test reads every manifest
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: fetch of novox/mesh-catalog#464: build_go_fetch on g14: the step g14.mvl3o921790ccf failed: go mod verify in checks/config: ch…
90ff4c485a
Author
Member

Delivery novox/mesh-catalog@454fb8a918ad — failed since 2026-10-23T17:59:26Z

Covered: covered after its failure: a later walk that contains it was delivered: plan-1792777718506798022 (novox/mesh-catalog at e8300455 into main, done, contains its merge e8300455)

Delivery plan — builds claude-code, gitea, lab, mesh-build-go, mesh-build-image, mesh-build-node, mesh-catalog, mesh-delivery-gate, mesh-issues → ace, g14, novox, shanks; no bus step

  • tier 0: claude-code, gitea, lab, mesh-build-go, mesh-build-image, mesh-build-node, mesh-catalog, mesh-delivery-gate, mesh-issues
  • ace: receives claude-code
  • g14: receives claude-code, mesh-build-go, mesh-build-node
  • novox: receives claude-code, gitea, mesh-build-go, mesh-build-node, mesh-catalog, mesh-delivery-gate, mesh-issues
  • shanks: receives claude-code, lab, mesh-build-go, mesh-build-image, mesh-build-node
  • claude-code keeps data (ADR 0233): what it holds is backed up before it moves
  • gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it
  • gitea keeps data (ADR 0233): what it holds is backed up before it moves
  • lab keeps data (ADR 0233): what it holds is backed up before it moves
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before claude-code, lab, mesh-build-go, mesh-build-image, mesh-build-node is judged on its first machine

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

Machines

  • claude-code on every machine running it: sent
  • mesh-controller on every machine running it: sent
  • mesh-delivery-indexer on every machine running it: sent
  • mesh-sdk on every machine running it: sent
  • node-tools on every machine running it: sent
  • mesh-build-go on every machine running it: sent
  • mesh-build-image on every machine running it: sent
  • mesh-build-node on every machine running it: sent
  • mesh-delivery-builder on every machine running it: sent
  • mesh-delivery-checker on every machine running it: sent
  • mesh-delivery-gate on every machine running it: sent
  • mesh-delivery-teller on every machine running it: sent
  • mesh-delivery-view on every machine running it: sent
  • mesh-delivery-watchman on every machine running it: sent
  • mesh-issues on every machine running it: sent
  • audit-logger on every machine running it: sent
  • bazarr on every machine running it: sent
  • bookshelf on every machine running it: sent
  • confluence on every machine running it: sent
  • gitea on every machine running it: sent
  • gitlab on every machine running it: sent
  • grafana on every machine running it: sent
  • home-assistant on every machine running it: sent
  • icecast on every machine running it: sent
  • influxdb on every machine running it: sent
  • jira on every machine running it: sent
  • lidarr on every machine running it: sent
  • mesh-catalog on every machine running it: sent
  • model-usage on every machine running it: sent
  • mosquitto on every machine running it: sent
  • netcheck on every machine running it: sent
  • nextcloud on every machine running it: sent
  • nodered on every machine running it: sent
  • ombi on every machine running it: sent
  • openai-consumer on every machine running it: sent
  • radarr on every machine running it: sent
  • redis on every machine running it: sent
  • route-adapter on every machine running it: sent
  • showcase on every machine running it: sent
  • sonarr on every machine running it: sent
  • tautulli on every machine running it: sent
  • umami on every machine running it: sent

Transitions

  • 2026-10-23 17:47 (new) → proposed (announced): novox/mesh-catalog#464's head announced
  • 2026-10-23 17:49 proposed → 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-catalog@454fb8a918ad` — **failed** since 2026-10-23T17:59:26Z **Covered**: covered after its failure: a later walk that contains it was delivered: plan-1792777718506798022 (novox/mesh-catalog at e8300455 into main, done, contains its merge e8300455) **Delivery plan** — builds claude-code, gitea, lab, mesh-build-go, mesh-build-image, mesh-build-node, mesh-catalog, mesh-delivery-gate, mesh-issues → ace, g14, novox, shanks; no bus step - tier 0: claude-code, gitea, lab, mesh-build-go, mesh-build-image, mesh-build-node, mesh-catalog, mesh-delivery-gate, mesh-issues - ace: receives claude-code - g14: receives claude-code, mesh-build-go, mesh-build-node - novox: receives claude-code, gitea, mesh-build-go, mesh-build-node, mesh-catalog, mesh-delivery-gate, mesh-issues - shanks: receives claude-code, lab, mesh-build-go, mesh-build-image, mesh-build-node - claude-code keeps data (ADR 0233): what it holds is backed up before it moves - gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it - gitea keeps data (ADR 0233): what it holds is backed up before it moves - lab keeps data (ADR 0233): what it holds is backed up before it moves - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before claude-code, lab, mesh-build-go, mesh-build-image, mesh-build-node is judged on its first machine **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 **Machines** - claude-code on every machine running it: sent - mesh-controller on every machine running it: sent - mesh-delivery-indexer on every machine running it: sent - mesh-sdk on every machine running it: sent - node-tools on every machine running it: sent - mesh-build-go on every machine running it: sent - mesh-build-image on every machine running it: sent - mesh-build-node on every machine running it: sent - mesh-delivery-builder on every machine running it: sent - mesh-delivery-checker on every machine running it: sent - mesh-delivery-gate on every machine running it: sent - mesh-delivery-teller on every machine running it: sent - mesh-delivery-view on every machine running it: sent - mesh-delivery-watchman on every machine running it: sent - mesh-issues on every machine running it: sent - audit-logger on every machine running it: sent - bazarr on every machine running it: sent - bookshelf on every machine running it: sent - confluence on every machine running it: sent - gitea on every machine running it: sent - gitlab on every machine running it: sent - grafana on every machine running it: sent - home-assistant on every machine running it: sent - icecast on every machine running it: sent - influxdb on every machine running it: sent - jira on every machine running it: sent - lidarr on every machine running it: sent - mesh-catalog on every machine running it: sent - model-usage on every machine running it: sent - mosquitto on every machine running it: sent - netcheck on every machine running it: sent - nextcloud on every machine running it: sent - nodered on every machine running it: sent - ombi on every machine running it: sent - openai-consumer on every machine running it: sent - radarr on every machine running it: sent - redis on every machine running it: sent - route-adapter on every machine running it: sent - showcase on every machine running it: sent - sonarr on every machine running it: sent - tautulli on every machine running it: sent - umami on every machine running it: sent **Transitions** - 2026-10-23 17:47 (new) → proposed (announced): novox/mesh-catalog#464's head announced - 2026-10-23 17:49 proposed → 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:04:11 +00:00
Give checks/trunk a full module path, so go mod verify in the checks that use it treats it as the local module it is (R4g group check)
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…
a00962871c
jschoubben added 1 commit 2026-10-23 15:06:13 +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/chec… | b60077850dfb on 3bec357968da | judged by the candidate's mesh-build-go at 47bcc1b5810e
b60077850d
jschoubben added 1 commit 2026-10-23 15:19:04 +00:00
Merge remote-tracking branch 'origin/main' into feat/r4g
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | b85d65b53f9e on 3bec357968da | judged by the candidate's mesh-build-go at f4ff9305030a
b85d65b53f
jschoubben added 1 commit 2026-10-23 15:19:41 +00:00
Prove a check ask's digest is the digest tool's answer in the call, so the checker keys kept verdicts by it (issue 1917)
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | d6b9cef9d005 on 3bec357968da | judged by the candidate's mesh-build-go at 769f9d906be2
d6b9cef9d0
jschoubben added 4 commits 2026-10-23 15:20:33 +00:00
The forge's required status was a second copy of the gate mesh-delivery and
the merge tool already keep; a stuck status writer held it too (issues 1886,
1891) and only a hand change at the forge let a fix merge. Main keeps no push,
the tools' merge whitelist and no administrator override. The merge tool
judges mesh/check whether or not the branch requires it, and on a branch that
requires none merges only a head the operator's Approve names. The protection
tool loses its status argument.
The operator merges by hand at the forge when the mesh's own path is stuck,
without changing a rule. The logins come from the trusted config value
main-mergers, merged into the runtime config both programs read.
Merge remote-tracking branch 'origin/feat/r4g' into feat/r4g
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | 1fc7b84ad2a0 on 3bec357968da | judged by the candidate's mesh-build-go at b3c53883f575
1fc7b84ad2
jschoubben added 1 commit 2026-10-23 15:22:25 +00:00
Take the committed 10 MB repositories binary back out of the gitea module and ignore it (R4g review)
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | 721db208876d on 3bec357968da | judged by the candidate's mesh-build-go at ead411584e58
721db20887
jschoubben added 1 commit 2026-10-23 15:38:32 +00:00
Skip the trunk comparison, saying NOT COMPARED, when the catalogue's own copy is not beside: the checker before R4g places none, so R4g's own check could never pass (issue 1295)
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: integration: meshbuildgo/cmd/mesh-build-go… | 0f768bc97b65 on 3bec357968da | judged by the candidate's mesh-build-go at 4046f8f8652e
0f768bc97b
jschoubben added 2 commits 2026-10-23 17:20:47 +00:00
jschoubben added 1 commit 2026-10-23 17:47:23 +00:00
Write a pull request's check verdict into its key after the key is created: the status event can be taken first (R4g, issue 1887)
mesh/delivery-group group feat/r4g failed: a member failed
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792777718506798022 (novox/mesh-catalog at e8300455 into main,…
mesh/check checking 454fb8a918ad on 3bec357968da | novox/mesh-catalog#464 in group feat/r4g
454fb8a918
jschoubben merged commit e830045545 into main 2026-10-23 17:49:44 +00:00
jschoubben deleted branch feat/r4g 2026-10-23 17:49:44 +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-catalog#464