Build build-agent and route-proxy without a build ID (hq issue 721) #301

Merged
mesh-admin merged 1 commits from fix/a-module-moves-only-when-its-program-changes into main 2026-10-14 20:21:13 +00:00
Contributor

Part of hq issue 721 (a change a module's program does not contain still rebuilds and rolls that module).

Go's build ID hashes every input package, so a change cmd/mesh-builder imports but never reaches still changed its bytes (proved on mesh-controller #335: a7fe6422… vs 78f2b7a2…; with -ldflags=-buildid= both c02a337c…). Both images built from the mesh-controller repository now compile with -trimpath -buildvcs=false -ldflags=-buildid=, so the merge check's content comparison (novox/mesh-controller, same branch) finds a rebuild of the same program the same.

Merging this moves build-agent and route-proxy once (their recipes changed).

after: novox/mesh-controller

Part of hq issue 721 (a change a module's program does not contain still rebuilds and rolls that module). Go's build ID hashes every input package, so a change cmd/mesh-builder imports but never reaches still changed its bytes (proved on mesh-controller #335: a7fe6422… vs 78f2b7a2…; with -ldflags=-buildid= both c02a337c…). Both images built from the mesh-controller repository now compile with `-trimpath -buildvcs=false -ldflags=-buildid=`, so the merge check's content comparison (novox/mesh-controller, same branch) finds a rebuild of the same program the same. Merging this moves build-agent and route-proxy once (their recipes changed). after: novox/mesh-controller
mesh-admin added 1 commit 2026-10-14 19:07:42 +00:00
Build build-agent and route-proxy without a build ID (hq issue 721)
mesh/merge-gate head d94764f00168 merged into trunk fadf5025cc5a — pass: builds build-agent, route-proxy → ace, g14, novox, shanks; no bus step; every mach…
mesh/repo-check head d94764f00168 merged into trunk fadf5025cc5a — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-…
mesh/delivery stopped: its group fix/a-module-moves-only-when-its-program-changes stopped: novox/mesh-controller@b34055f580d4 failed
mesh/delivery-group group fix/a-module-moves-only-when-its-program-changes delivering: 1 of 2 delivered; novox/mesh-catalog@d94764f00168, stopped for a member …
d94764f001
Go's build ID hashes every input package, so a change mesh-builder never reaches
still changed its bytes; without it, a rebuild of the same program is the same
file, and the check can say the module is unchanged.
Author
Contributor

Delivery novox/mesh-catalog@d94764f00168 — stopped since 2026-10-14T20:32:18Z

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

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

Group fix/a-module-moves-only-when-its-program-changes, in order: novox/mesh-controller@b34055f580 → novox/mesh-catalog@d94764f001

Transitions

  • 2026-10-14 19:07 (new) → proposed (announced): novox/mesh-catalog#301's head announced
  • 2026-10-14 19:10 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-14 19:10 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-14 19:35 ready → proposed (trunk moved): out of date: judged against trunk 482232e8c5, the trunk is now 7e3e62062bef; judged again on a recheck or when it is merged
  • 2026-10-14 20:10 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-14 20:10 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-14 20:32 ready → stopped (stop): its group fix/a-module-moves-only-when-its-program-changes stopped: novox/mesh-controller@b34055f580 failed

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@d94764f00168` — **stopped** since 2026-10-14T20:32:18Z **Delivery plan** — builds build-agent, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: build-agent, route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - 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 - 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 build-agent, route-proxy is judged on its first machine **Group** `fix/a-module-moves-only-when-its-program-changes`, in order: novox/mesh-controller@b34055f580d4 → novox/mesh-catalog@d94764f00168 - novox/mesh-controller@b34055f580d4 before novox/mesh-catalog@d94764f00168: declared, over built by - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Transitions** - 2026-10-14 19:07 (new) → proposed (announced): novox/mesh-catalog#301's head announced - 2026-10-14 19:10 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-14 19:10 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-14 19:35 ready → proposed (trunk moved): out of date: judged against trunk 482232e8c51c, the trunk is now 7e3e62062bef; judged again on a recheck or when it is merged - 2026-10-14 20:10 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-14 20:10 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-14 20:32 ready → stopped (stop): its group fix/a-module-moves-only-when-its-program-changes stopped: novox/mesh-controller@b34055f580d4 failed The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at d94764f0
Judged: head d94764f00168 merged into trunk 482232e8c51c; read beside it: mesh-controller c2ec0a601acb, mesh-controller-main c2ec0a601acb, mesh-host 1a2677882380, mesh-tools 954e1a53eef9

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, route-proxy)
  • mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)

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

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

Run by the build seat on shanks as build-1792004876535420148 (builds --log build-1792004876535420148).

--- the gate: build-agent, route-proxy
build-agent: ok, keeps workspace (cache), judge-cache (cache), ready: server by exec every 10s
route-proxy: ok, keeps acme (rebuildable), ca (cache), ready: server by tcp on http every 10s
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
2 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-14T19:01:09Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-14T19:01:09Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 2 module(s) in 1 tier(s): build-agent, route-proxy
--- its merge-check.sh (go toolchain)
ok  	git.novox.be/novox/mesh-catalog/checks/words	0.003s
words: 12 retired words and 70 daemons' lines, none in the 46927 strings of 719 files
ok  	git.novox.be/novox/mesh-catalog/checks/agenthome	0.012s
agent-home: no archive and no file written into under the agent's home
ok  	git.novox.be/novox/mesh-catalog/checks/secrets	0.012s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok  	git.novox.be/novox/mesh-catalog/checks/paths	0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 62, as kept
ok  	git.novox.be/novox/mesh-catalog/checks/deps	0.209s
testing modules/build-agent
ok  	build-agent	1.010s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `d94764f0` Judged: head `d94764f00168` merged into trunk `482232e8c51c`; read beside it: mesh-controller `c2ec0a601acb`, mesh-controller-main `c2ec0a601acb`, mesh-host `1a2677882380`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, route-proxy) - `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript) **Delivery plan** — builds build-agent, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: build-agent, route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - 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 - 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 build-agent, route-proxy is judged on its first machine Run by the build seat on shanks as `build-1792004876535420148` (`builds --log build-1792004876535420148`). ``` --- the gate: build-agent, route-proxy build-agent: ok, keeps workspace (cache), judge-cache (cache), ready: server by exec every 10s route-proxy: ok, keeps acme (rebuildable), ca (cache), ready: server by tcp on http every 10s long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 0 2 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-14T19:01:09Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-14T19:01:09Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 2 module(s) in 1 tier(s): build-agent, route-proxy --- its merge-check.sh (go toolchain) ok git.novox.be/novox/mesh-catalog/checks/words 0.003s words: 12 retired words and 70 daemons' lines, none in the 46927 strings of 719 files ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.012s agent-home: no archive and no file written into under the agent's home ok git.novox.be/novox/mesh-catalog/checks/secrets 0.012s secrets: no setting can replace a vault secret in a mergeable file (1 known, nested) ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s paths: no module names another's state on its machine (3 known, listed to go) long-running resources without health: 62, as kept ok git.novox.be/novox/mesh-catalog/checks/deps 0.209s testing modules/build-agent ok build-agent 1.010s --- its merge-check-typescript.sh (typescript toolchain) ```
Author
Contributor

Merge check at d94764f0
Judged: head d94764f00168 merged into trunk fadf5025cc5a; read beside it: mesh-controller c2ec0a601acb, mesh-controller-main c2ec0a601acb, mesh-host 1a2677882380, mesh-tools 954e1a53eef9

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, route-proxy)
  • mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)

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

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

Run by the build seat on ace as build-1792008407287846441 (builds --log build-1792008407287846441).

--- the gate: build-agent, route-proxy
build-agent: ok, keeps workspace (cache), judge-cache (cache), ready: server by exec every 10s
route-proxy: ok, keeps acme (rebuildable), ca (cache), ready: server by tcp on http every 10s
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
2 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-14T20:00:09Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-14T20:00:09Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 2 module(s) in 1 tier(s): build-agent, route-proxy
--- its merge-check.sh (go toolchain)
ok  	git.novox.be/novox/mesh-catalog/checks/words	0.002s
words: 12 retired words and 70 daemons' lines, none in the 47070 strings of 721 files
ok  	git.novox.be/novox/mesh-catalog/checks/agenthome	0.012s
agent-home: no archive and no file written into under the agent's home
ok  	git.novox.be/novox/mesh-catalog/checks/secrets	0.012s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok  	git.novox.be/novox/mesh-catalog/checks/paths	0.005s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 62, as kept
ok  	git.novox.be/novox/mesh-catalog/checks/deps	0.331s
testing modules/build-agent
ok  	build-agent	1.011s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `d94764f0` Judged: head `d94764f00168` merged into trunk `fadf5025cc5a`; read beside it: mesh-controller `c2ec0a601acb`, mesh-controller-main `c2ec0a601acb`, mesh-host `1a2677882380`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, route-proxy) - `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript) **Delivery plan** — builds build-agent, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: build-agent, route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - 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 - 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 build-agent, route-proxy is judged on its first machine Run by the build seat on ace as `build-1792008407287846441` (`builds --log build-1792008407287846441`). ``` --- the gate: build-agent, route-proxy build-agent: ok, keeps workspace (cache), judge-cache (cache), ready: server by exec every 10s route-proxy: ok, keeps acme (rebuildable), ca (cache), ready: server by tcp on http every 10s long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 0 2 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-14T20:00:09Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-14T20:00:09Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 2 module(s) in 1 tier(s): build-agent, route-proxy --- its merge-check.sh (go toolchain) ok git.novox.be/novox/mesh-catalog/checks/words 0.002s words: 12 retired words and 70 daemons' lines, none in the 47070 strings of 721 files ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.012s agent-home: no archive and no file written into under the agent's home ok git.novox.be/novox/mesh-catalog/checks/secrets 0.012s secrets: no setting can replace a vault secret in a mergeable file (1 known, nested) ok git.novox.be/novox/mesh-catalog/checks/paths 0.005s paths: no module names another's state on its machine (3 known, listed to go) long-running resources without health: 62, as kept ok git.novox.be/novox/mesh-catalog/checks/deps 0.331s testing modules/build-agent ok build-agent 1.011s --- its merge-check-typescript.sh (typescript toolchain) ```
mesh-admin merged commit 2edef5a00a into main 2026-10-14 20:21:13 +00:00
mesh-admin deleted branch fix/a-module-moves-only-when-its-program-changes 2026-10-14 20:21:13 +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-catalog#301