internal/broker/genesis_template_test.go: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose reads examples/foundation-first-node.lock. mesh-host #96 (issue 146, ADR 0331 §2) deleted foundation-first-node-nats.lock and kept its content under the one bundle's name.
testdata/beside: the captured mesh-host copy moves to mesh-host main 7a41e12. That is the one bundle, plus internal/apply/placement_guard.go.captured at the same commit, as CAPTURED requires. CAPTURED names the new file and commit.
Why
In a merge check, mesh-host is cloned at main beside the controller, and the test read a file main no longer has. So mesh/repo-check failed on controller main and on every controller pull request.
How it was tested
internal/broker and internal/catalogue pass against the captured copy, and also against mesh-host and mesh-catalog main checked out beside the controller (MESH_CHECK_BESIDE), as the build seat runs them.
sh merge-check.sh against a throwaway Postgres (postgres:17-alpine on 127.0.0.1:55546): every package passes except TestATierPutsABrokenModuleBackAtOnce and TestKeepingRenewsAcrossManyAges. This change touches neither (it is one test path and captured testdata). Both passed when rerun alone. I think they are timing-sensitive under the full parallel suite, but I have not confirmed it.
Fixes the repo-check fallout of issue 146.
## What
- `internal/broker/genesis_template_test.go`: `TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose` reads `examples/foundation-first-node.lock`. mesh-host #96 (issue 146, ADR 0331 §2) deleted `foundation-first-node-nats.lock` and kept its content under the one bundle's name.
- `testdata/beside`: the captured mesh-host copy moves to mesh-host main 7a41e12. That is the one bundle, plus `internal/apply/placement_guard.go.captured` at the same commit, as CAPTURED requires. CAPTURED names the new file and commit.
## Why
In a merge check, mesh-host is cloned at main beside the controller, and the test read a file main no longer has. So `mesh/repo-check` failed on controller main and on every controller pull request.
## How it was tested
- `internal/broker` and `internal/catalogue` pass against the captured copy, and also against mesh-host and mesh-catalog main checked out beside the controller (`MESH_CHECK_BESIDE`), as the build seat runs them.
- `sh merge-check.sh` against a throwaway Postgres (postgres:17-alpine on 127.0.0.1:55546): every package passes except `TestATierPutsABrokenModuleBackAtOnce` and `TestKeepingRenewsAcrossManyAges`. This change touches neither (it is one test path and captured testdata). Both passed when rerun alone. I think they are timing-sensitive under the full parallel suite, but I have not confirmed it.
Fixes the repo-check fallout of issue 146.
mesh-host #96 replaced foundation-first-node-nats.lock with foundation-first-node.lock,
and the test that holds the installer's first user list to the controller's composition
still read the removed file, so repo-check failed on main and every pull request. The
captured copy moves to mesh-host 7a41e12, with the placement guard at the same commit.
Deliverynovox/mesh-controller@5795e03fad7b — delivered since 2026-10-12T23:21:43Z
Delivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
2026-10-12 23:16 (new) → proposed (announced): novox/mesh-controller#284's head announced
2026-10-12 23:20 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-12 23:20 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-12 23:21 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-12 23:21 published → delivered (done): nothing for a walk to move
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@5795e03fad7b` — **delivered** since 2026-10-12T23:21:43Z
**Delivery plan** — builds nothing: the change touches no module of the mesh's graph
**Transitions**
- 2026-10-12 23:16 (new) → proposed (announced): novox/mesh-controller#284's head announced
- 2026-10-12 23:20 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-12 23:20 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-12 23:21 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-12 23:21 published → delivered (done): nothing for a walk to move
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
The diff is four files on top of main cbac703 (the merge base is main's head): genesis_template_test.go reads examples/foundation-first-node.lock instead of foundation-first-node-nats.lock; CAPTURED moves mesh-host to 7a41e12 and names the new path in both the table and the archive command; the captured lock is renamed and updated; and placement_guard.go.captured gains 14 lines. Nothing outside the test and testdata changes.
The fourth file is not named in the PR's summary, but it belongs: CAPTURED's instructions capture placement_guard.go from the same mesh-host commit, so moving mesh-host to 7a41e12 moves both. Both captured files are byte-identical to mesh-host at 7a41e12 (git show 7a41e12: | diff, no output for either).
Tests, against the captured copy (no mesh-host checked out beside; the test logged that it judged the captured copy): TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose PASS; go test ./internal/broker ./internal/catalogue ok (catalogue includes the engine-guard test that reads placement_guard.go); go vet on both is clean.
Statuses at this head when I read them: mesh/merge-gate pending (building on ace), mesh/delivery pending, mesh/repo-check not yet posted. Merge only after both required checks are green and read.
Verdict: approve at 5795e03fad7b2501cf98952835aaa5b77743e262
What I checked:
1. The diff is four files on top of main cbac703 (the merge base is main's head): genesis_template_test.go reads examples/foundation-first-node.lock instead of foundation-first-node-nats.lock; CAPTURED moves mesh-host to 7a41e12 and names the new path in both the table and the archive command; the captured lock is renamed and updated; and placement_guard.go.captured gains 14 lines. Nothing outside the test and testdata changes.
2. The fourth file is not named in the PR's summary, but it belongs: CAPTURED's instructions capture placement_guard.go from the same mesh-host commit, so moving mesh-host to 7a41e12 moves both. Both captured files are byte-identical to mesh-host at 7a41e12 (git show 7a41e12:<path> | diff, no output for either).
3. Tests, against the captured copy (no mesh-host checked out beside; the test logged that it judged the captured copy): TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose PASS; go test ./internal/broker ./internal/catalogue ok (catalogue includes the engine-guard test that reads placement_guard.go); go vet on both is clean.
Statuses at this head when I read them: mesh/merge-gate pending (building on ace), mesh/delivery pending, mesh/repo-check not yet posted. Merge only after both required checks are green and read.
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.
What
internal/broker/genesis_template_test.go:TestTheInstallersFirstUserListIsWhatTheControllerWouldComposereadsexamples/foundation-first-node.lock. mesh-host #96 (issue 146, ADR 0331 §2) deletedfoundation-first-node-nats.lockand kept its content under the one bundle's name.testdata/beside: the captured mesh-host copy moves to mesh-host main 7a41e12. That is the one bundle, plusinternal/apply/placement_guard.go.capturedat the same commit, as CAPTURED requires. CAPTURED names the new file and commit.Why
In a merge check, mesh-host is cloned at main beside the controller, and the test read a file main no longer has. So
mesh/repo-checkfailed on controller main and on every controller pull request.How it was tested
internal/brokerandinternal/cataloguepass against the captured copy, and also against mesh-host and mesh-catalog main checked out beside the controller (MESH_CHECK_BESIDE), as the build seat runs them.sh merge-check.shagainst a throwaway Postgres (postgres:17-alpine on 127.0.0.1:55546): every package passes exceptTestATierPutsABrokenModuleBackAtOnceandTestKeepingRenewsAcrossManyAges. This change touches neither (it is one test path and captured testdata). Both passed when rerun alone. I think they are timing-sensitive under the full parallel suite, but I have not confirmed it.Fixes the repo-check fallout of issue 146.
Delivery
novox/mesh-controller@5795e03fad7b— delivered since 2026-10-12T23:21:43ZDelivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Verdict: approve at
5795e03fadWhat I checked:
cbac703(the merge base is main's head): genesis_template_test.go reads examples/foundation-first-node.lock instead of foundation-first-node-nats.lock; CAPTURED moves mesh-host to 7a41e12 and names the new path in both the table and the archive command; the captured lock is renamed and updated; and placement_guard.go.captured gains 14 lines. Nothing outside the test and testdata changes.Statuses at this head when I read them: mesh/merge-gate pending (building on ace), mesh/delivery pending, mesh/repo-check not yet posted. Merge only after both required checks are green and read.