Files
mesh-catalog/modules/build-agent
jochen f4fb0a7461
mesh/merge-gate pass: builds build-agent, gitea, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did witho…
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery delivered
Name the package each controller-repository image compiles, and say a renamed file under both names (hq ADR 0267, issue 363)
Every merge to the controller's repository rebuilt the route proxy and the
build seat's holder, because their builds read that repository whole. Named,
the build seat hands each only its program's build source and the planner
moves each only when that changes. A rename was said under its new name
alone, so a file moved out of a build source changed nothing the planner
could see.
2026-10-10 02:58:31 +02:00
..

build-agent

The mesh's build machine as a role every machine can hold (novox/hq ADR 0190). It holds the node seat node-build-agent: every holder pulls one build at a time from the role's one work queue when it is idle, so a tier of many images is built by as many machines as hold the seat and are online, and a machine that is off builds nothing and blocks nothing. The controller asks the role, never a machine; the outcome names the machine that built it.

What a holding machine needs is what the builder always needed, said here once: a container runtime (the socket is mounted), the artifact store and the package registry as provisions, a workspace, and the bus credential. The code is cmd/mesh-builder in the mesh-controller repository, compiled from that repository's main (build.artifacts[].context); this module ships the packaging.

Assign it to every machine with a container runtime. It replaces builder, the one-holder form of the same thing; retire that once this is assigned where it was.