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/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…
Deliverynovox/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
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
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`.
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…
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | b60077850dfb on 3bec357968da | judged by the candidate's mesh-build-go at 47bcc1b5810e
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | b85d65b53f9e on 3bec357968da | judged by the candidate's mesh-build-go at f4ff9305030a
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | d6b9cef9d005 on 3bec357968da | judged by the candidate's mesh-build-go at 769f9d906be2
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.
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | 1fc7b84ad2a0 on 3bec357968da | judged by the candidate's mesh-build-go at b3c53883f575
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | 721db208876d on 3bec357968da | judged by the candidate's mesh-build-go at ead411584e58
mesh/check failed: integration: meshbuildgo/cmd/mesh-build-go… | 0f768bc97b65 on 3bec357968da | judged by the candidate's mesh-build-go at 4046f8f8652e
mesh/check failed: integration: mesh-delivery-gate/cmd/mesh-d… | c32474ee40f4 on 3bec357968da | judged by the candidate's mesh-build-go at 2e667ac15ce7
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792777718506798022 (novox/mesh-catalog at e8300455 into main,…
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Design 47's last milestone, R4g+R5, one delivery group on feat/r4g.
Reviewed-by: review-r4g-2@shanks at
c32474ee40Pushed-by: lead-47@shanks
Delivery
novox/mesh-catalog@454fb8a918ad— failed since 2026-10-23T17:59:26ZCovered: covered after its failure: a later walk that contains it was delivered: plan-1792777718506798022 (novox/mesh-catalog at
e8300455into main, done, contains its mergee8300455)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
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@e67d21e8b4Machines
Transitions
plans goThe commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.