R4e (mesh-controller): deliver from the builder's keys, ask build-agent only for its own modules, follow the forge's protection for checks, announce the controller's states #441

Merged
mesh-tools merged 39 commits from feat/r4e into main 2026-10-22 22:12:59 +00:00
Member

Delivery group feat/r4e (R4e of design 47: ADR 0503, 0513, 0514, 0520, 0521; ADR 0498, 0501). Members: mesh-sdk, mesh-controller, mesh-delivery, mesh-catalog, all on branch feat/r4e.

This member: a delivery plan takes its modules from the builder's done keys and asks build-agent only for its own modules until R4g (the builder's module, build-agent and mesh-tools, ADR 0520; issue 1851); new modules are registered from their first done key; the terminal's build/rebuild/replay --register are removed, register and switch added (C3); pull request checks follow the trunk's protection, mesh/repo-check still asked of build-agent where the trunk requires it, hq included (ADR 0513 §4; issues 1299, 1318; C2); the controller announces its states (ADR 0495, issue 1790); a starting controller sends the bus machine its user list before anything writes its buckets (issue 1800); a retry names the modules still waiting for the bus (issue 1403); mesh-sdk pinned at the group's head 104533e8 and re-vendored.

Tests: unit suite and the whole integration level; try PASS on d51324df (build-1792697129298002967).

Reviewed-by: review-r4e@shanks at d51324df45

Delivery group feat/r4e (R4e of design 47: ADR 0503, 0513, 0514, 0520, 0521; ADR 0498, 0501). Members: mesh-sdk, mesh-controller, mesh-delivery, mesh-catalog, all on branch feat/r4e. This member: a delivery plan takes its modules from the builder's done keys and asks build-agent only for its own modules until R4g (the builder's module, build-agent and mesh-tools, ADR 0520; issue 1851); new modules are registered from their first done key; the terminal's build/rebuild/replay --register are removed, register and switch added (C3); pull request checks follow the trunk's protection, mesh/repo-check still asked of build-agent where the trunk requires it, hq included (ADR 0513 §4; issues 1299, 1318; C2); the controller announces its states (ADR 0495, issue 1790); a starting controller sends the bus machine its user list before anything writes its buckets (issue 1800); a retry names the modules still waiting for the bus (issue 1403); mesh-sdk pinned at the group's head 104533e8 and re-vendored. Tests: unit suite and the whole integration level; try PASS on d51324df (build-1792697129298002967). Reviewed-by: review-r4e@shanks at d51324df45184e049757436d7795e43237590a9e
mesh-tools added 39 commits 2026-10-22 21:51:43 +00:00
A new controller's grants reached the bus only after its gate, so the
buckets it newly writes were refused until then. At start it now sends
the bus's machine the user list alone, every build there kept.
With the hand rebuild gone, a retry of a plan failed past the bus's bound
read the waiting modules while the plan still said failed, named none,
and answered "asked" with nothing after it.
The builder writes no key of build-agent or of the toolchain bases its
builds stand on, so a walk moving one would hold its tier for ever.
Until R4g they are build-agent's own, as the builder's module is; the
bases are read from the toolchains, not copied.
A trunk requiring both contexts (hq) matched mesh/check first and had
its own merge-check.sh never asked.
ADR 0520 narrowed after its review: mesh-tools-go builds from its own
directory on a pinned base and has its key from mesh-build-image, and
mesh-tools-python is no module, so the set is named, not derived from
the toolchain bases.
The help still offered build, rebuild and replay --register, each now
refused as removed, and did not name the terminal's register.
The merge check refused the eight deleted tests as listed and not run.
The SDK's S1 and S2 review fixes landed after 875c680d.
Format the help's test (issue 1851)
mesh/repo-check head d51324df4518 merged into trunk f2a4363a1a77 beside mesh-catalog#457@896bd883 — pass: its merge-check.sh passed
mesh/merge-gate head d51324df4518 merged into trunk f2a4363a1a77 — pass: group feat/r4e composed: every machine composes with the change as it did without …
mesh/check failed: unit: ..test: node:internal/modules/esm/resolve:989 | d51324df4518 on f2a4363a1a77 | unit 1 run, 0 kept | integration 0 run, 0 kept…
mesh/delivery covered after its stop: a later walk that contains it was delivered: plan-1792707174627079192 (novox/mesh-controller at 289bbf68 into main,…
mesh/delivery-group group feat/r4e delivered: every member is delivered
d51324df45
Author
Member

Delivery novox/mesh-controller@d51324df4518 — stopped since 2026-10-23T00:01:53Z

Covered: covered after its stop: a later walk that contains it was delivered: plan-1792707174627079192 (novox/mesh-controller at 289bbf68 into main, done, contains its merge 289bbf68)

Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller, route-proxy
  • tier 1: build-agent
  • ace: receives route-proxy, build-agent
  • g14: receives build-agent
  • novox: receives mesh-controller, route-proxy, build-agent
  • shanks: receives build-agent
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
  • build-agent 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 route-proxy, build-agent is judged on its first machine

Group feat/r4e: novox/mesh-catalog@896bd88380, novox/mesh-controller@d51324df45, novox/mesh-delivery@efca168c55, novox/mesh-sdk@22b70c82b0

  • composed together: pass — every machine composes with the change as it did without (4 of 4 compose)

Machines

  • mesh-controller on every machine running it: sent
  • mesh-sdk on every machine running it: sent
  • pacman on every machine running it: sent
  • route-proxy on every machine running it: sent
  • build-agent 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-checker on every machine running it: sent
  • mesh-delivery-forge-bridge on every machine running it: sent
  • mesh-delivery-gate on every machine running it: sent
  • mesh-delivery-indexer on every machine running it: sent
  • mesh-delivery-view on every machine running it: sent
  • mesh-tools on every machine running it: sent
  • audit-logger on every machine running it: sent
  • baserow 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
  • jackett on every machine running it: sent
  • jira on every machine running it: sent
  • kometa on every machine running it: sent
  • lab on every machine running it: sent
  • letta on every machine running it: sent
  • lidarr on every machine running it: sent
  • mailu on every machine running it: sent
  • mesh-catalog on every machine running it: sent
  • mesh-delivery-builder on every machine running it: sent
  • minio on every machine running it: sent
  • model-usage on every machine running it: sent
  • mongodb on every machine running it: sent
  • mosquitto on every machine running it: sent
  • mssql 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
  • searxng 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
  • unifi on every machine running it: sent
  • zsh on every machine running it: sent

Transitions

  • 2026-10-22 21:52 (new) → proposed (announced): novox/mesh-controller#441's head announced
  • 2026-10-22 22:02 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-22 22:02 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-22 22:15 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-22 22:15 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
  • 2026-10-23 00:01 delivering → stopped (stop): its walk plan-1792707174627079192 was stopped by a person (mesh-controller): issue 1886 (the operator, 02:08: fix it right now): stuck for good on builder keys nothing running can reference; as an open plan it holds every merge check, including the fix mesh-controller #442. The fixed controller goes to novox by the bootstrap act (ADR 0522 §5); R4e's 8 + 40 remaining modules are carried on afterwards by a retry that resumes a hand-stopped plan (follow-up on issue 1886, note 7).

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@d51324df4518` — **stopped** since 2026-10-23T00:01:53Z **Covered**: covered after its stop: a later walk that contains it was delivered: plan-1792707174627079192 (novox/mesh-controller at 289bbf68 into main, done, contains its merge 289bbf68) **Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller, route-proxy - tier 1: build-agent - ace: receives route-proxy, build-agent - g14: receives build-agent - novox: receives mesh-controller, route-proxy, build-agent - shanks: receives build-agent - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves - build-agent 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 route-proxy, build-agent is judged on its first machine **Group** `feat/r4e`: novox/mesh-catalog@896bd88380b3, novox/mesh-controller@d51324df4518, novox/mesh-delivery@efca168c5522, novox/mesh-sdk@22b70c82b0ab - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-controller on every machine running it: sent - mesh-sdk on every machine running it: sent - pacman on every machine running it: sent - route-proxy on every machine running it: sent - build-agent 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-checker on every machine running it: sent - mesh-delivery-forge-bridge on every machine running it: sent - mesh-delivery-gate on every machine running it: sent - mesh-delivery-indexer on every machine running it: sent - mesh-delivery-view on every machine running it: sent - mesh-tools on every machine running it: sent - audit-logger on every machine running it: sent - baserow 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 - jackett on every machine running it: sent - jira on every machine running it: sent - kometa on every machine running it: sent - lab on every machine running it: sent - letta on every machine running it: sent - lidarr on every machine running it: sent - mailu on every machine running it: sent - mesh-catalog on every machine running it: sent - mesh-delivery-builder on every machine running it: sent - minio on every machine running it: sent - model-usage on every machine running it: sent - mongodb on every machine running it: sent - mosquitto on every machine running it: sent - mssql 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 - searxng 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 - unifi on every machine running it: sent - zsh on every machine running it: sent **Transitions** - 2026-10-22 21:52 (new) → proposed (announced): novox/mesh-controller#441's head announced - 2026-10-22 22:02 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-22 22:02 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-22 22:15 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-22 22:15 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit - 2026-10-23 00:01 delivering → stopped (stop): its walk plan-1792707174627079192 was stopped by a person (mesh-controller): issue 1886 (the operator, 02:08: fix it right now): stuck for good on builder keys nothing running can reference; as an open plan it holds every merge check, including the fix mesh-controller #442. The fixed controller goes to novox by the bootstrap act (ADR 0522 §5); R4e's 8 + 40 remaining modules are carried on afterwards by a retry that resumes a hand-stopped plan (follow-up on issue 1886, note 7). The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh-tools merged commit 289bbf68e4 into main 2026-10-22 22:12:59 +00:00
mesh-tools deleted branch feat/r4e 2026-10-22 22:12:59 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#441