Give delivery.Module the toolchains its fingerprint was computed with, and '.' as a root module's path, so the builder builds a key only with its own toolchain (issue 1615)
#55
Merged
mesh-toolsmerged 1 commits from fix/1615-module-toolchains-root into main2026-10-21 10:02:09 +00:00
Issue 1615 (design 47, R4c-4; ADR 0477 §2, ADR 0478 §3 and §8). Found by the review of the builder after #53.
Module.Path is RootPath (".") for a module whose manifest is its repository's root; empty now means not known (a value written before the indexer learned paths). Without it, root modules (mesh-controller, mesh-host, mesh-sdk...) could never be built.
Module.Toolchains (toolchains, omitempty): the per-language toolchains (version, recipe) the FP2 was computed with, so a builder builds a key only with that toolchain, not with whatever the nodes run after an upgrade. check() refuses an entry without version or recipe.
Compatibility: Module now holds a map, so it is no longer comparable with ==. Every Go module importing mesh-sdk/go/delivery was compiled against this branch (mesh-control, mesh-host, the 5 mesh-delivery modules, mesh-build-go, mesh-build-node, mesh-delivery-gate): all compile except mesh-delivery indexer's source_test.go:35 (m != want), which is fixed by mesh-delivery's feat/r4c4-builder (3bd2a06) in the same change that bumps its SDK pin; mesh-delivery pins an older SDK until then.
Tests: TestModuleRootPathAndToolchains (round trip, old shape, refusals); go test/vet clean; mesh-controller.try build-1792575446464381901 passed at 89dd57be (49 s).
Issue 1615 (design 47, R4c-4; ADR 0477 §2, ADR 0478 §3 and §8). Found by the review of the builder after #53.
- `Module.Path` is `RootPath` (".") for a module whose manifest is its repository's root; empty now means not known (a value written before the indexer learned paths). Without it, root modules (mesh-controller, mesh-host, mesh-sdk...) could never be built.
- `Module.Toolchains` (`toolchains`, omitempty): the per-language toolchains (version, recipe) the FP2 was computed with, so a builder builds a key only with that toolchain, not with whatever the nodes run after an upgrade. check() refuses an entry without version or recipe.
Compatibility: Module now holds a map, so it is no longer comparable with ==. Every Go module importing mesh-sdk/go/delivery was compiled against this branch (mesh-control, mesh-host, the 5 mesh-delivery modules, mesh-build-go, mesh-build-node, mesh-delivery-gate): all compile except mesh-delivery indexer's source_test.go:35 (`m != want`), which is fixed by mesh-delivery's feat/r4c4-builder (3bd2a06) in the same change that bumps its SDK pin; mesh-delivery pins an older SDK until then.
Tests: TestModuleRootPathAndToolchains (round trip, old shape, refusals); go test/vet clean; mesh-controller.try build-1792575446464381901 passed at 89dd57be (49 s).
Reviewed-by: reviewer-1615@shanks at 89dd57bed05da32881bf1122781989619e57c05d
mesh/merge-gate head 89dd57bed05d merged into trunk 465beb4ea5e3 — pass, with a note: builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus …
mesh/repo-check head 89dd57bed05d merged into trunk 465beb4ea5e3 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
g14: receives netcheck, zsh; waits for a person: nftables
novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables
shanks: receives lab, netcheck, zsh; waits for a person: nftables
baserow keeps data (ADR 0233): what it holds is backed up before it moves
bazarr keeps data (ADR 0233): what it holds is backed up before it moves
bookshelf 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
grafana keeps data (ADR 0233): what it holds is backed up before it moves
home-assistant keeps data (ADR 0233): what it holds is backed up before it moves
icecast keeps data (ADR 0233): what it holds is backed up before it moves
influxdb provides influxdb-api: its consumers are sent again after it
influxdb keeps data (ADR 0233): what it holds is backed up before it moves
jackett provides jackett-api: its consumers are sent again after it
jackett keeps data (ADR 0233): what it holds is backed up before it moves
kometa 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
lidarr provides lidarr-api: its consumers are sent again after it
lidarr keeps data (ADR 0233): what it holds is backed up before it moves
mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
mailu provides smtp: its consumers are sent again after it
mailu keeps data (ADR 0233): what it holds is backed up before it moves
minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
minio provides s3-bucket: its consumers are sent again after it
minio keeps data (ADR 0233): what it holds is backed up before it moves
mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
mongodb provides mongodb-database: its consumers are sent again after it
mongodb keeps data (ADR 0233): what it holds is backed up before it moves
mosquitto provides mqtt-topic: its consumers are sent again after it
mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
mssql provides mssql-database: its consumers are sent again after it
mssql keeps data (ADR 0233): what it holds is backed up before it moves
nextcloud keeps data (ADR 0233): what it holds is backed up before it moves
nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
nodered keeps data (ADR 0233): what it holds is backed up before it moves
ombi keeps data (ADR 0233): what it holds is backed up before it moves
radarr provides radarr-api: its consumers are sent again after it
radarr keeps data (ADR 0233): what it holds is backed up before it moves
redis provides redis-cache: its consumers are sent again after it
redis keeps data (ADR 0233): what it holds is backed up before it moves
searxng keeps data (ADR 0233): what it holds is backed up before it moves
sonarr provides sonarr-api: its consumers are sent again after it
sonarr keeps data (ADR 0233): what it holds is backed up before it moves
tautulli keeps data (ADR 0233): what it holds is backed up before it moves
umami provides analytics: its consumers are sent again after it
umami keeps data (ADR 0233): what it holds is backed up before it moves
unifi 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 baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine
Machines
dev-tools on every machine running it: sent
mesh-build-go on every machine running it: sent
mesh-build-node on every machine running it: sent
mesh-sdk on every machine running it: sent
mesh-tools on every machine running it: sent
audit-logger 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
jira on every machine running it: sent
lab on every machine running it: sent
mesh-catalog on every machine running it: sent
model-usage on every machine running it: sent
openai-consumer on every machine running it: sent
route-adapter on every machine running it: sent
showcase on every machine running it: sent
Transitions
2026-10-21 09:52 (new) → proposed (announced): novox/mesh-sdk#55's head announced
2026-10-21 10:01 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-21 10:01 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-21 10:35 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-21 10:36 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-21 10:59 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-sdk@89dd57bed05d` — **delivered** since 2026-10-21T10:59:40Z
**Delivery plan** — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person
- tier 0: mesh-sdk
- tier 1: mesh-tools
- tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh
- ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables
- g14: receives netcheck, zsh; waits for a person: nftables
- novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables
- shanks: receives lab, netcheck, zsh; waits for a person: nftables
- baserow keeps data (ADR 0233): what it holds is backed up before it moves
- bazarr keeps data (ADR 0233): what it holds is backed up before it moves
- bookshelf 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
- grafana keeps data (ADR 0233): what it holds is backed up before it moves
- home-assistant keeps data (ADR 0233): what it holds is backed up before it moves
- icecast keeps data (ADR 0233): what it holds is backed up before it moves
- influxdb provides influxdb-api: its consumers are sent again after it
- influxdb keeps data (ADR 0233): what it holds is backed up before it moves
- jackett provides jackett-api: its consumers are sent again after it
- jackett keeps data (ADR 0233): what it holds is backed up before it moves
- kometa 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
- lidarr provides lidarr-api: its consumers are sent again after it
- lidarr keeps data (ADR 0233): what it holds is backed up before it moves
- mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- mailu provides smtp: its consumers are sent again after it
- mailu keeps data (ADR 0233): what it holds is backed up before it moves
- minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- minio provides s3-bucket: its consumers are sent again after it
- minio keeps data (ADR 0233): what it holds is backed up before it moves
- mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- mongodb provides mongodb-database: its consumers are sent again after it
- mongodb keeps data (ADR 0233): what it holds is backed up before it moves
- mosquitto provides mqtt-topic: its consumers are sent again after it
- mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
- mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- mssql provides mssql-database: its consumers are sent again after it
- mssql keeps data (ADR 0233): what it holds is backed up before it moves
- nextcloud keeps data (ADR 0233): what it holds is backed up before it moves
- nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- nodered keeps data (ADR 0233): what it holds is backed up before it moves
- ombi keeps data (ADR 0233): what it holds is backed up before it moves
- radarr provides radarr-api: its consumers are sent again after it
- radarr keeps data (ADR 0233): what it holds is backed up before it moves
- redis provides redis-cache: its consumers are sent again after it
- redis keeps data (ADR 0233): what it holds is backed up before it moves
- searxng keeps data (ADR 0233): what it holds is backed up before it moves
- sonarr provides sonarr-api: its consumers are sent again after it
- sonarr keeps data (ADR 0233): what it holds is backed up before it moves
- tautulli keeps data (ADR 0233): what it holds is backed up before it moves
- umami provides analytics: its consumers are sent again after it
- umami keeps data (ADR 0233): what it holds is backed up before it moves
- unifi 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 baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine
**Machines**
- dev-tools on every machine running it: sent
- mesh-build-go on every machine running it: sent
- mesh-build-node on every machine running it: sent
- mesh-sdk on every machine running it: sent
- mesh-tools on every machine running it: sent
- audit-logger 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
- jira on every machine running it: sent
- lab on every machine running it: sent
- mesh-catalog on every machine running it: sent
- model-usage on every machine running it: sent
- openai-consumer on every machine running it: sent
- route-adapter on every machine running it: sent
- showcase on every machine running it: sent
**Transitions**
- 2026-10-21 09:52 (new) → proposed (announced): novox/mesh-sdk#55's head announced
- 2026-10-21 10:01 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-21 10:01 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-21 10:35 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-21 10:36 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-21 10:59 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
g14: receives netcheck, zsh; waits for a person: nftables
novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables
shanks: receives lab, netcheck, zsh; waits for a person: nftables
baserow keeps data (ADR 0233): what it holds is backed up before it moves
bazarr keeps data (ADR 0233): what it holds is backed up before it moves
bookshelf 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
grafana keeps data (ADR 0233): what it holds is backed up before it moves
home-assistant keeps data (ADR 0233): what it holds is backed up before it moves
icecast keeps data (ADR 0233): what it holds is backed up before it moves
influxdb provides influxdb-api: its consumers are sent again after it
influxdb keeps data (ADR 0233): what it holds is backed up before it moves
jackett provides jackett-api: its consumers are sent again after it
jackett keeps data (ADR 0233): what it holds is backed up before it moves
kometa 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
lidarr provides lidarr-api: its consumers are sent again after it
lidarr keeps data (ADR 0233): what it holds is backed up before it moves
mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
mailu provides smtp: its consumers are sent again after it
mailu keeps data (ADR 0233): what it holds is backed up before it moves
minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
minio provides s3-bucket: its consumers are sent again after it
minio keeps data (ADR 0233): what it holds is backed up before it moves
mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
mongodb provides mongodb-database: its consumers are sent again after it
mongodb keeps data (ADR 0233): what it holds is backed up before it moves
mosquitto provides mqtt-topic: its consumers are sent again after it
mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
mssql provides mssql-database: its consumers are sent again after it
mssql keeps data (ADR 0233): what it holds is backed up before it moves
nextcloud keeps data (ADR 0233): what it holds is backed up before it moves
nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
nodered keeps data (ADR 0233): what it holds is backed up before it moves
ombi keeps data (ADR 0233): what it holds is backed up before it moves
radarr provides radarr-api: its consumers are sent again after it
radarr keeps data (ADR 0233): what it holds is backed up before it moves
redis provides redis-cache: its consumers are sent again after it
redis keeps data (ADR 0233): what it holds is backed up before it moves
searxng keeps data (ADR 0233): what it holds is backed up before it moves
sonarr provides sonarr-api: its consumers are sent again after it
sonarr keeps data (ADR 0233): what it holds is backed up before it moves
tautulli keeps data (ADR 0233): what it holds is backed up before it moves
umami provides analytics: its consumers are sent again after it
umami keeps data (ADR 0233): what it holds is backed up before it moves
unifi 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 baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine
Run by the build seat on shanks as build-1792576380954615022 (builds --log build-1792576380954615022).
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:156: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:185: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:185: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
placed_paths_test.go:25: set MESH_CATALOGUE_BEFORE and MESH_CATALOGUE to two catalogue checkouts to run this
--- SKIP: TestPlacedDirectoriesKeepTheirPaths (0.00s)
print_rehearsal_test.go:10: set PRINT_RULESET
--- SKIP: TestPrintRehearsalRuleset (0.00s)
public_issuer_test.go:15: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
published_ports_test.go:27: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
reads_test.go:77: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
reads_test.go:77: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_file_is_the_uplinks_test.go:26: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:40: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:40: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:213: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:213: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:258: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:258: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_data_test.go:165: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_data_test.go:165: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:303: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
setting_in_unit_test.go:65: zfs.distribution-weekly: zfs-scrub-weekly@storage.timer
setting_in_unit_test.go:65: zfs.distribution-monthly: zfs-scrub-monthly@storage.timer
showcase_manifest_test.go:17: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:52: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
state_test.go:88: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
PASS
ok git.novox.be/novox/mesh-sdk/go/catalogue 1.394s
PASS
ok git.novox.be/novox/mesh-sdk/go/cli 1.045s
PASS
ok git.novox.be/novox/mesh-sdk/go/compose 0.167s
emitted_check_test.go:17: set MESH_EMITTED to a declaration the control plane produced
--- SKIP: TestWhatTheControlPlaneEmittedIsSomethingThisHostAccepts (0.00s)
PASS
ok git.novox.be/novox/mesh-sdk/go/declaration 0.012s
PASS
ok git.novox.be/novox/mesh-sdk/go/delivery 0.019s
? git.novox.be/novox/mesh-sdk/go/example [no test files]
PASS
ok git.novox.be/novox/mesh-sdk/go/facts 0.011s
PASS
ok git.novox.be/novox/mesh-sdk/go/forgekey 0.319s
PASS
ok git.novox.be/novox/mesh-sdk/go/health 0.014s
beside_test.go:16: judged against the copy of mesh-catalog captured in testdata/beside (see CAPTURED); a merge check judges it against the repository's own clone
beside_test.go:17: judged against the copy of mesh-catalog captured in testdata/beside (see CAPTURED); a merge check judges it against the repository's own clone
PASS
ok git.novox.be/novox/mesh-sdk/go/internal/beside 0.053s
PASS
ok git.novox.be/novox/mesh-sdk/go/internal/testbus 0.141s
PASS
ok git.novox.be/novox/mesh-sdk/go/objectlink 0.006s
PASS
ok git.novox.be/novox/mesh-sdk/go/outward 0.075s
PASS
ok git.novox.be/novox/mesh-sdk/go/overlay 0.006s
PASS
ok git.novox.be/novox/mesh-sdk/go/process 6.500s
PASS
ok git.novox.be/novox/mesh-sdk/go/provider 0.118s
PASS
ok git.novox.be/novox/mesh-sdk/go/provider/harness 0.135s
PASS
ok git.novox.be/novox/mesh-sdk/go/sdkversion 0.002s
PASS
ok git.novox.be/novox/mesh-sdk/go/seal 0.006s
PASS
ok git.novox.be/novox/mesh-sdk/go/validate 0.003s
integration level: 1485 tests (4 skipped), 7 s
**Merge check** at `89dd57be`
Judged: head `89dd57bed05d` merged into trunk `465beb4ea5e3`; read beside it: mesh-catalog `0f2cee1bea4e`, mesh-controller `0205b8f7080a`, mesh-controller-main `0205b8f7080a`, mesh-host `c5c4caa2a4ab`, mesh-tools `e0fadc43d9dd`
- `mesh/merge-gate`: **PASS, WITH A NOTE** — a merge rebuilds 42 module(s) in 3 tier(s) (modules: mesh-sdk; built after them: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, mesh-tools, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript), go/merge-check.sh (go)
**Delivery plan** — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person
- tier 0: mesh-sdk
- tier 1: mesh-tools
- tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh
- ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables
- g14: receives netcheck, zsh; waits for a person: nftables
- novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables
- shanks: receives lab, netcheck, zsh; waits for a person: nftables
- baserow keeps data (ADR 0233): what it holds is backed up before it moves
- bazarr keeps data (ADR 0233): what it holds is backed up before it moves
- bookshelf 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
- grafana keeps data (ADR 0233): what it holds is backed up before it moves
- home-assistant keeps data (ADR 0233): what it holds is backed up before it moves
- icecast keeps data (ADR 0233): what it holds is backed up before it moves
- influxdb provides influxdb-api: its consumers are sent again after it
- influxdb keeps data (ADR 0233): what it holds is backed up before it moves
- jackett provides jackett-api: its consumers are sent again after it
- jackett keeps data (ADR 0233): what it holds is backed up before it moves
- kometa 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
- lidarr provides lidarr-api: its consumers are sent again after it
- lidarr keeps data (ADR 0233): what it holds is backed up before it moves
- mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- mailu provides smtp: its consumers are sent again after it
- mailu keeps data (ADR 0233): what it holds is backed up before it moves
- minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- minio provides s3-bucket: its consumers are sent again after it
- minio keeps data (ADR 0233): what it holds is backed up before it moves
- mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- mongodb provides mongodb-database: its consumers are sent again after it
- mongodb keeps data (ADR 0233): what it holds is backed up before it moves
- mosquitto provides mqtt-topic: its consumers are sent again after it
- mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
- mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- mssql provides mssql-database: its consumers are sent again after it
- mssql keeps data (ADR 0233): what it holds is backed up before it moves
- nextcloud keeps data (ADR 0233): what it holds is backed up before it moves
- nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
- nodered keeps data (ADR 0233): what it holds is backed up before it moves
- ombi keeps data (ADR 0233): what it holds is backed up before it moves
- radarr provides radarr-api: its consumers are sent again after it
- radarr keeps data (ADR 0233): what it holds is backed up before it moves
- redis provides redis-cache: its consumers are sent again after it
- redis keeps data (ADR 0233): what it holds is backed up before it moves
- searxng keeps data (ADR 0233): what it holds is backed up before it moves
- sonarr provides sonarr-api: its consumers are sent again after it
- sonarr keeps data (ADR 0233): what it holds is backed up before it moves
- tautulli keeps data (ADR 0233): what it holds is backed up before it moves
- umami provides analytics: its consumers are sent again after it
- umami keeps data (ADR 0233): what it holds is backed up before it moves
- unifi 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 baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine
Run by the build seat on shanks as `build-1792576380954615022` (`builds --log build-1792576380954615022`).
```
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:59: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:101: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:156: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:184: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:185: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
node_resolver_test.go:185: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
placed_paths_test.go:25: set MESH_CATALOGUE_BEFORE and MESH_CATALOGUE to two catalogue checkouts to run this
--- SKIP: TestPlacedDirectoriesKeepTheirPaths (0.00s)
print_rehearsal_test.go:10: set PRINT_RULESET
--- SKIP: TestPrintRehearsalRuleset (0.00s)
public_issuer_test.go:15: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
published_ports_test.go:27: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
reads_test.go:77: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
reads_test.go:77: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_file_is_the_uplinks_test.go:26: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:40: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:40: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:105: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:128: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:213: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:213: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:257: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:258: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:258: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:275: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
resolver_manifests_test.go:288: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_data_test.go:165: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_data_test.go:165: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:250: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
seat_paths_test.go:303: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
setting_in_unit_test.go:65: zfs.distribution-weekly: zfs-scrub-weekly@storage.timer
setting_in_unit_test.go:65: zfs.distribution-monthly: zfs-scrub-monthly@storage.timer
showcase_manifest_test.go:17: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:46: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
ssh_client_test.go:52: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
state_test.go:88: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:123: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:144: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:163: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:170: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:178: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:212: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
two_resolvers_test.go:246: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
PASS
ok git.novox.be/novox/mesh-sdk/go/catalogue 1.394s
PASS
ok git.novox.be/novox/mesh-sdk/go/cli 1.045s
PASS
ok git.novox.be/novox/mesh-sdk/go/compose 0.167s
emitted_check_test.go:17: set MESH_EMITTED to a declaration the control plane produced
--- SKIP: TestWhatTheControlPlaneEmittedIsSomethingThisHostAccepts (0.00s)
PASS
ok git.novox.be/novox/mesh-sdk/go/declaration 0.012s
PASS
ok git.novox.be/novox/mesh-sdk/go/delivery 0.019s
? git.novox.be/novox/mesh-sdk/go/example [no test files]
PASS
ok git.novox.be/novox/mesh-sdk/go/facts 0.011s
PASS
ok git.novox.be/novox/mesh-sdk/go/forgekey 0.319s
PASS
ok git.novox.be/novox/mesh-sdk/go/health 0.014s
beside_test.go:16: judged against the copy of mesh-catalog captured in testdata/beside (see CAPTURED); a merge check judges it against the repository's own clone
beside_test.go:17: judged against the copy of mesh-catalog captured in testdata/beside (see CAPTURED); a merge check judges it against the repository's own clone
PASS
ok git.novox.be/novox/mesh-sdk/go/internal/beside 0.053s
PASS
ok git.novox.be/novox/mesh-sdk/go/internal/testbus 0.141s
PASS
ok git.novox.be/novox/mesh-sdk/go/objectlink 0.006s
PASS
ok git.novox.be/novox/mesh-sdk/go/outward 0.075s
PASS
ok git.novox.be/novox/mesh-sdk/go/overlay 0.006s
PASS
ok git.novox.be/novox/mesh-sdk/go/process 6.500s
PASS
ok git.novox.be/novox/mesh-sdk/go/provider 0.118s
PASS
ok git.novox.be/novox/mesh-sdk/go/provider/harness 0.135s
PASS
ok git.novox.be/novox/mesh-sdk/go/sdkversion 0.002s
PASS
ok git.novox.be/novox/mesh-sdk/go/seal 0.006s
PASS
ok git.novox.be/novox/mesh-sdk/go/validate 0.003s
integration level: 1485 tests (4 skipped), 7 s
```
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.
Issue 1615 (design 47, R4c-4; ADR 0477 §2, ADR 0478 §3 and §8). Found by the review of the builder after #53.
Module.PathisRootPath(".") for a module whose manifest is its repository's root; empty now means not known (a value written before the indexer learned paths). Without it, root modules (mesh-controller, mesh-host, mesh-sdk...) could never be built.Module.Toolchains(toolchains, omitempty): the per-language toolchains (version, recipe) the FP2 was computed with, so a builder builds a key only with that toolchain, not with whatever the nodes run after an upgrade. check() refuses an entry without version or recipe.Compatibility: Module now holds a map, so it is no longer comparable with ==. Every Go module importing mesh-sdk/go/delivery was compiled against this branch (mesh-control, mesh-host, the 5 mesh-delivery modules, mesh-build-go, mesh-build-node, mesh-delivery-gate): all compile except mesh-delivery indexer's source_test.go:35 (
m != want), which is fixed by mesh-delivery's feat/r4c4-builder (3bd2a06) in the same change that bumps its SDK pin; mesh-delivery pins an older SDK until then.Tests: TestModuleRootPathAndToolchains (round trip, old shape, refusals); go test/vet clean; mesh-controller.try build-1792575446464381901 passed at
89dd57be(49 s).Reviewed-by: reviewer-1615@shanks at
89dd57bed0Delivery
novox/mesh-sdk@89dd57bed05d— delivered since 2026-10-21T10:59:40ZDelivery plan — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
89dd57beJudged: head
89dd57bed05dmerged into trunk465beb4ea5e3; read beside it: mesh-catalog0f2cee1bea4e, mesh-controller0205b8f7080a, mesh-controller-main0205b8f7080a, mesh-hostc5c4caa2a4ab, mesh-toolse0fadc43d9ddmesh/merge-gate: PASS, WITH A NOTE — a merge rebuilds 42 module(s) in 3 tier(s) (modules: mesh-sdk; built after them: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, mesh-tools, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript), go/merge-check.sh (go)Delivery plan — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person
Run by the build seat on shanks as
build-1792576380954615022(builds --log build-1792576380954615022).