Release 1 of design 47's phase II (issue 1025; ADR 0420 §4-§7, accepted 2026-10-17). One delivery group with mesh-catalog's feat/move-a-module (mesh-delivery announces each merge with its Approve).
A context naming the module's own repository is its own build source (ADR 0420 §4).
The merge gate judges a group's move of a module as a move: a name removed by one member and defined by another passes, both head orders; outside a group the refusals of issue 239 and ADR 0236 stand (§6).
Registration accepts a module's new repository only on mesh-delivery's merged announcement whose warrant, read back from the router, is the operator's Approve of that head (§7); a verb, no warrant or another head's warrant is still refused (ADR 0266 §44).
merge-check.sh vets and tests every nested Go module (§5).
Reviewed locally by an independent reviewer (round 2 of 3, approved at e42becb4). Integration test: moved_bus_test.go (store and bus), run by this merge check. Opened along the way: issue 1028 (hardening: match the head under its delivery id).
Release 1 of design 47's phase II (issue 1025; ADR 0420 §4-§7, accepted 2026-10-17). One delivery group with mesh-catalog's feat/move-a-module (mesh-delivery announces each merge with its Approve).
- A context naming the module's own repository is its own build source (ADR 0420 §4).
- The merge gate judges a group's move of a module as a move: a name removed by one member and defined by another passes, both head orders; outside a group the refusals of issue 239 and ADR 0236 stand (§6).
- Registration accepts a module's new repository only on mesh-delivery's `merged` announcement whose warrant, read back from the router, is the operator's Approve of that head (§7); a verb, no warrant or another head's warrant is still refused (ADR 0266 §44).
- merge-check.sh vets and tests every nested Go module (§5).
Reviewed locally by an independent reviewer (round 2 of 3, approved at e42becb4). Integration test: moved_bus_test.go (store and bus), run by this merge check. Opened along the way: issue 1028 (hardening: match the head under its delivery id).
mesh/repo-check head e42becb479a4 merged into trunk b8c810a3499c beside mesh-catalog#348@40eed3a0 — fail: THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh):…
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
composed together: pass — every machine composes with the change as it did without (4 of 4 compose)
Machines
mesh-controller on every machine running it: sent
route-proxy on every machine running it: sent
build-agent on every machine running it: sent
Transitions
2026-10-17 15:29 (new) → proposed (announced): novox/mesh-controller#369's head announced
2026-10-17 15:36 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-17 15:36 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-17 15:41 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-17 15:41 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-17 15:46 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-controller@7ee2b42230dc` — **delivered** since 2026-10-17T15:46:20Z
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller, route-proxy
- tier 1: build-agent
- ace: receives route-proxy, build-agent
- g14: receives build-agent
- novox: receives mesh-controller, route-proxy, build-agent
- shanks: receives build-agent
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
**Group** `feat/move-a-module`, in order: novox/mesh-controller@7ee2b42230dc → novox/mesh-catalog@40eed3a036db
- novox/mesh-controller@7ee2b42230dc before novox/mesh-catalog@40eed3a036db: built by
- composed together: pass — every machine composes with the change as it did without (4 of 4 compose)
**Machines**
- mesh-controller on every machine running it: sent
- route-proxy on every machine running it: sent
- build-agent on every machine running it: sent
**Transitions**
- 2026-10-17 15:29 (new) → proposed (announced): novox/mesh-controller#369's head announced
- 2026-10-17 15:36 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-17 15:36 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-17 15:41 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-17 15:41 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-17 15:46 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/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
mesh/repo-check: FAIL — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: --- FAIL: TestTheMergeCheckVetsAndTestsEveryNestedGoModule (0.00s)
Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
read by no module's build: cmd/mesh-controller/build_source_test.go, cmd/mesh-controller/merge_check_nested_test.go, cmd/mesh-controller/merge_gate_test.go, cmd/mesh-controller/moved_bus_test.go, cmd/mesh-controller/moved_test.go, cmd/mesh-controller/planner_rules_test.go, internal/broker/testdata/composed.conf, internal/link/contracts_test.go, merge-check.sh, testdata/store-tests
Run by the build seat on ace as build-1792250399175088280 (builds --log build-1792250399175088280).
✓ docker port (0s)
$ (.) docker exec build-1792250620197546038-store pg_isready -U postgres
✓ docker exec (0s)
$ (.) docker run --label mesh.build=build-1792250620197546038 -d --rm --name build-1792250620197546038-bus -p 127.0.0.1::4222 nats:2.11.17-alpine -js
✓ docker run (1ms)
$ (.) docker port build-1792250620197546038-bus 4222/tcp
✓ docker port (0s)
$ (mesh-con) git rev-parse --verify --quiet HEAD^{tree}
✓ git rev-parse (1ms)
$ (mesh-hos) git rev-parse --verify --quiet HEAD^{tree}
✓ git rev-parse (1ms)
$ (mesh-con) git rev-parse --verify --quiet HEAD^{commit}
✓ git rev-parse (1ms)
$ (check) git clone --quiet --no-local --no-checkout /tmp/TestReplay8671105482020/006/check/mesh-controller /tmp/TestReplay8671105482020/006/check/judge-src
✓ git clone (31ms)
$ (judge-sr) git checkout --quiet --detach b2475d4f66739d87840cd83e3a4f13191d13a1f8
✓ git checkout (3ms)
$ (check) docker run --label mesh.build=build-1792250620197546038 --volume /tmp/TestReplay8671105482020/001/homes/build-1792250620197546038:/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038 --volume /tmp/TestReplay8671105482020/001/go-cache:/tmp/TestReplay8671105482020/001/go-cache --rm --network host --volume /tmp/TestReplay8671105482020/006:/tmp/TestReplay8671105482020/006 --workdir /tmp/TestReplay8671105482020/006/check/judge-src --user 0:0 --env HOME=/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038 --env GIT_CONFIG_COUNT=1 --env GIT_CONFIG_KEY_0=safe.directory --env GIT_CONFIG_VALUE_0=* --env XDG_CONFIG_HOME=/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038/.config --env GIT_CONFIG_GLOBAL=/dev/null --env GIT_CONFIG_NOSYSTEM=1 --env GOENV=off --env GOCACHE=/tmp/TestReplay8671105482020/001/go-cache --env GOPATH=/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038/go --env CGO_ENABLED=0 --env GOFLAGS=-mod=vendor -buildvcs=false --env GOPROXY=off golang go build -o /tmp/TestReplay8671105482020/006/check/bin/judge-of-the-group ./cmd/mesh-controller
✓ docker run (169ms)
$ (.) docker ps -aq --filter label=mesh.build=build-1792250620197546038
✓ docker ps (0s)
release-1792250621230207913: 2 build(s) wait for a gate on anchor, laptop; one machine first, then the rest at once, each judged
release-1792250621230207913: sent anchor 1 build(s) that waited for a gate; judging them there
plan-app: tier 0 built; anchor already runs app's build: nothing sent again, judged from that send, going on from the readings of release-1792250621230207913
settings-1792250621937432229: the settings of app on the whole mesh — approved (ask s3): sent to anchor, laptop, one machine at a time, each judged
settings-1792250621937432229: sent anchor the settings of app on the whole mesh (ask s3), every build there kept; judging app there
settings-1792250621937432229: sent laptop the settings of app on the whole mesh (ask s3), every build there kept; judging app there
settings-1792250621937432229: the settings of app on the whole mesh (ask s3) delivered on anchor, laptop
mailer on the whole mesh:
+ tags.todo.name
run `push --behind` to send it to the machines running it
plan-tier: tier 0 built; sent 2 module(s) to anchor first in one send (node-tools, app1), the rest once its gate passes
plan-tier: node-tools passed its gate on anchor (healthy 1 times over 0s, by the tool runner's rule: one reading once it answers, after the node-engine's witness window (novox/hq ADR 0351)); the rest are sent
plan-tier: tier 0 built; sent node-tools, app1 to laptop, one send each
plan-tier: done — novox/mesh-catalog at c2, 1 tier(s)
requests on laptop now holds "tv-api" from anchor, sealed to both machines.
the mesh cannot read it back, will not replace it with one of its own, and will not rotate it
run `push anchor` and `push laptop` to send it
the vault now holds accept/<nil> (generation 1), accepted: sealed at this terminal to the vault's key for this call, opened in the vault alone and never remade by it; its machine takes it from the vault
this act by hand could NOT be recorded in the hand-act log, and is done anyway: the hand-act log mesh-controller_hand-acts is not on the bus — the controller asserts it at its start, so one older than this has not: nats: bucket not found
release-1792250636299130592: 2 build(s) wait for a gate on anchor, laptop; one machine first, then the rest at once, each judged
release-1792250636299130592 releases it; `plans release-1792250636299130592` says where it is
FAIL
FAIL github.com/novox/mesh-controller/cmd/mesh-controller 65s (shard 6 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 64s (shard 7 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 124s (shard 8 of 8: 134 tests)
ok github.com/novox/mesh-controller/internal/inventory 14s (shard 1 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 14s (shard 2 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 13s (shard 3 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/inventory 13s (shard 4 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/builder 16s (shard 1 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 18s (shard 2 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 32s (shard 3 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 37s (shard 4 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/link 22s (shard 1 of 4: 50 tests)
ok github.com/novox/mesh-controller/internal/link 19s (shard 2 of 4: 49 tests)
ok github.com/novox/mesh-controller/internal/link 21s (shard 3 of 4: 49 tests)
ok github.com/novox/mesh-controller/internal/link 17s (shard 4 of 4: 49 tests)
store tests, each run against the store:
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.26s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.27s)
./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.28s)
./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.28s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.25s)
./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.23s)
./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.00s)
./cmd/mesh-controller --- PASS: TestIssue969TheGateRaisesEachMachineAsItsEngineStatedItself (0.86s)
./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.36s)
./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.18s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.24s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.23s)
./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.20s)
./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.20s)
./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.26s)
./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.31s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.24s)
./cmd/mesh-controller --- PASS: TestReplay237 (0.22s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.22s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.29s)
./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.29s)
./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.22s)
./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.35s)
./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.38s)
./cmd/mesh-controller --- PASS: TestReplay201 (0.18s)
./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.17s)
./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.18s)
./cmd/mesh-controller --- PASS: TestReplay401 (0.32s)
./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.28s)
./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.28s)
./cmd/mesh-controller --- PASS: TestReplay340 (0.28s)
./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.19s)
./cmd/mesh-controller --- PASS: TestReplay349 (0.23s)
./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.20s)
./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s)
./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.27s)
./cmd/mesh-controller --- PASS: TestAWalkWhoseEveryBuildCameOutTheSameIsDone (0.16s)
./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.08s)
./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.62s)
./cmd/mesh-controller --- PASS: TestReplay164 (0.34s)
./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.19s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.19s)
./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.19s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.18s)
./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.50s)
./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.17s)
./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.16s)
./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.23s)
./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.50s)
./cmd/mesh-controller --- PASS: TestTheMergeGateJudgesEachManifestAgainstTheListOfTheTree (5.65s)
./cmd/mesh-controller --- PASS: TestRegistrationPublishesTheNewestTrunkListAndJudgesEveryModuleAgainstIt (0.22s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterPlacementMoves (0.41s)
./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.24s)
./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.21s)
./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.20s)
./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.24s)
./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.18s)
./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.19s)
./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.21s)
./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.20s)
./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.31s)
./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.20s)
./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.17s)
./cmd/mesh-controller --- PASS: TestTheProvisionerClientsAccountIsIssuedForItsServiceAndNeverInvented (0.22s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOwnSecretTakesThePathOfItsModulesForm (0.23s)
./cmd/mesh-controller --- PASS: TestAcceptForAProviderTakesThePathOfTheProvidersModule (0.26s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedTrustedModuleAnnouncesBeforeTheVaultIsAsked (0.25s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedModuleRecordsAHandActAndNeverTheValue (0.21s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOutsideOfferTakesThePathOfTheProvidersModule (0.27s)
./cmd/mesh-controller --- PASS: TestAnAskAtTheDeskTakesThePathOfItsModulesForm (0.25s)
./cmd/mesh-controller --- PASS: TestAnIssuedValueTakesThePathOfItsProvidersModule (0.29s)
./cmd/mesh-controller --- PASS: TestARotationTakesThePathOfItsModulesForm (0.23s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameWhileTheWordsAreStillInTheLayers (2.21s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterTheMoveOfPlacement (4.39s)
./cmd/mesh-controller --- PASS: TestTheSendSealsNoSecretOfAModuleHandedThere (0.25s)
./cmd/mesh-controller --- PASS: TestAModulesSecretsAreTheVaultsOnceItIsMarkedMoved (0.16s)
./cmd/mesh-controller --- PASS: TestEveryMachineIsToldTheSameAfterTheMoveOfConfig (21.35s)
./cmd/mesh-controller --- PASS: TestTheMoveOfConfigRefusesWhatWouldChangeAMachine (7.37s)
./cmd/mesh-controller --- PASS: TestTheSettingsVerbForwardsToConfigOnceTheValuesMoved (10.77s)
./cmd/mesh-controller --- PASS: TestTheSendCarriesTheVaultsBoxForACoreCredentialAndKeepsIt (0.37s)
./cmd/mesh-controller --- PASS: TestASilentVaultHoldsTheKeptBoxAndSaysSo (0.37s)
./cmd/mesh-controller --- PASS: TestACoreModuleFirstPlacedWhileTheVaultIsSilentIsSealedByTheController (0.29s)
./cmd/mesh-controller --- PASS: TestAnEngineBelowTheContractIsSentTheControllersSealAsBefore (0.28s)
./cmd/mesh-controller --- PASS: TestModuleIssueHandsACoveredAccountToTheVaultAndOnlyThat (0.32s)
./cmd/mesh-controller --- PASS: TestModuleIssueFailsWhenTheVaultDoesNotTakeACoveredAccount (0.25s)
./cmd/mesh-controller --- PASS: TestModuleIssueBeforeTheVaultIsInstalledKeepsTheValueAndHandsNothing (0.28s)
./cmd/mesh-controller --- PASS: TestARecordedModulesBundleOnlyMoveRollsOutInItsWalk (0.37s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatRecreatesAContainerWaits (0.69s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatTouchesDataOrAProviderWaits (0.72s)
./cmd/mesh-controller --- PASS: TestAPersonsRecordAndTheBusHoldEveryMove (0.54s)
./cmd/mesh-controller --- PASS: TestARecordedMoveThatCannotBeJudgedWaits (0.43s)
./cmd/mesh-controller --- PASS: TestReplay867 (3.43s)
./cmd/mesh-controller --- PASS: TestReplay867Recheck (3.25s)
./cmd/mesh-controller --- PASS: TestTheRecheckVerbAsksMeshDeliveryOnABusOfItsOwn (0.32s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController (3.07s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionJudgedWithTheValidatorIntoAReleaseBranchIsJudgedByItsOwnController (2.97s)
./cmd/mesh-controller --- PASS: TestAssigningTheClientIssuesItsAccount (0.19s)
./cmd/mesh-controller --- PASS: TestAnUnrelatedBatchWalksBesideAnOpenWalk (0.52s)
./cmd/mesh-controller --- PASS: TestARelatedBatchWaitsBehindTheOpenWalk (0.41s)
./cmd/mesh-controller --- PASS: TestAnOwnPathBatchNeverWalksBeside (0.42s)
./cmd/mesh-controller --- PASS: TestMergesHeardWhileAnotherHolderHasThePlansAreRecordedAndCarried (7.39s)
./cmd/mesh-controller --- PASS: TestABatchWindowClosesByTheExpiryOfItsKey (1.59s)
./cmd/mesh-controller --- PASS: TestEveryMoveAMergeAndTheCutMakeOfAPlanIsSaid (0.26s)
./cmd/mesh-controller --- PASS: TestARolloutAdvancesOnEventsAndAReplacedControllerResumesIt (3.62s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoByTheDeliverVerbIsAskedWithNoOtherEvent (0.82s)
./cmd/mesh-controller --- PASS: TestTwoMergesWithinAMinuteLeaveEachOpenPullRequestOneQueuedCheck (0.83s)
./cmd/mesh-controller --- FAIL: TestADeliveryGroupMovingAModuleMachinesRunPassesTheGate (3.26s)
./cmd/mesh-controller --- PASS: TestAModuleMovesOnTheOperatorsApproveOfTheMergeThatMovedIt (1.73s)
./cmd/mesh-controller --- PASS: TestAModuleBuiltFromANewRepositoryIsRegisteredOnlyOnTheOperatorsApproveOnTheBus (0.72s)
./cmd/mesh-controller FAIL: go test exited 1
./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.13s)
./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.13s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.10s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.10s)
./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.09s)
./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.08s)
./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.23s)
./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.13s)
./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.13s)
./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.12s)
./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.14s)
./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.12s)
./internal/inventory --- PASS: TestAModuleInTheConfigFormIsMirroredWithItsWholeDeclaration (0.09s)
./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.10s)
./internal/inventory --- PASS: TestANewerBuildsListReplacesTheKeptOneAndAnOlderOneHeardLaterDoesNot (0.10s)
./internal/inventory --- PASS: TestPlacementMovesOutOfTheSettingsLayers (0.50s)
./internal/inventory --- PASS: TestASettingRoutesPlacementBesideTheLayer (0.13s)
./internal/inventory --- PASS: TestTheProvisionerClientsMachineHasAnAccountOfItsOwn (0.13s)
./internal/inventory --- PASS: TestTheFourWordsAreKeptBesideTheLayer (0.12s)
./internal/inventory --- PASS: TestALayerStillHoldingTheWordsReadsThemAsPlacement (0.13s)
./internal/inventory --- PASS: TestTheMoveOfPlacementMovesWhatTheLayersStillHold (0.11s)
./internal/inventory --- PASS: TestTheMoveReadsEveryRowSealedToAMachineAsItIs (0.17s)
./internal/inventory --- PASS: TestASendKeepsThePlansItHandedAndTheMirrorCarriesThem (0.12s)
./internal/inventory --- PASS: TestTheLayersAreReadUntilTheMoveOfConfigHasRun (0.12s)
./internal/inventory --- PASS: TestAModuleReadsMeshConfigOnlyWhereItsValuesAre (0.12s)
./internal/inventory --- PASS: TestTheEndOfTheMoveRefusesALayerChangedSinceItWasRead (0.10s)
./internal/inventory --- PASS: TestACoreCredentialsVaultBoxIsKeptPerMachineAndReplaced (0.09s)
./internal/inventory --- PASS: TestWhatRunsIsTheRegisteredBuildNotANewerOnePutBack (0.11s)
./internal/recordmirror --- PASS: TestNatsAnAssignmentAndARegistrationEachChangeOneKeyAndRaiseOneEvent (3.58s)
./internal/recordmirror --- PASS: TestNatsTheListOfPredefinedKeysKeptChangesTheMirrorsOneKey (1.51s)
2 store test(s) listed in testdata/store-tests did not run and pass against the store
--- what failed, picked from the whole of its output (the whole is in the build's log)
FAIL github.com/novox/mesh-controller/cmd/mesh-controller 71s (shard 5 of 8: 134 tests)
--- FAIL: TestTheMergeCheckVetsAndTestsEveryNestedGoModule (0.00s)
merge_check_nested_test.go:35: a repository with no nested module failed: exit status 2
lstat cmd: no such file or directory
lstat internal: no such file or directory
lstat examples: no such file or directory
FAIL github.com/novox/mesh-controller/cmd/mesh-controller 65s (shard 6 of 8: 134 tests)
**Merge check** at `e42becb4`
Judged: head `e42becb479a4` merged into trunk `b8c810a3499c`; read beside it: mesh-catalog `4c1d9adeaccb`, mesh-controller-main `b8c810a3499c`, mesh-host `cd13f7726ef0`, mesh-tools `7412c5b6c9c5`
Siblings read beside it: novox/mesh-catalog#348 `40eed3a036db` merged onto `0d2fc5e4d79c` (main)
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
- `mesh/repo-check`: **FAIL** — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: --- FAIL: TestTheMergeCheckVetsAndTestsEveryNestedGoModule (0.00s)
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller, route-proxy
- tier 1: build-agent
- ace: receives route-proxy, build-agent
- g14: receives build-agent
- novox: receives mesh-controller, route-proxy, build-agent
- shanks: receives build-agent
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
- read by no module's build: cmd/mesh-controller/build_source_test.go, cmd/mesh-controller/merge_check_nested_test.go, cmd/mesh-controller/merge_gate_test.go, cmd/mesh-controller/moved_bus_test.go, cmd/mesh-controller/moved_test.go, cmd/mesh-controller/planner_rules_test.go, internal/broker/testdata/composed.conf, internal/link/contracts_test.go, merge-check.sh, testdata/store-tests
Run by the build seat on ace as `build-1792250399175088280` (`builds --log build-1792250399175088280`).
```
✓ docker port (0s)
$ (.) docker exec build-1792250620197546038-store pg_isready -U postgres
✓ docker exec (0s)
$ (.) docker run --label mesh.build=build-1792250620197546038 -d --rm --name build-1792250620197546038-bus -p 127.0.0.1::4222 nats:2.11.17-alpine -js
✓ docker run (1ms)
$ (.) docker port build-1792250620197546038-bus 4222/tcp
✓ docker port (0s)
$ (mesh-con) git rev-parse --verify --quiet HEAD^{tree}
✓ git rev-parse (1ms)
$ (mesh-hos) git rev-parse --verify --quiet HEAD^{tree}
✓ git rev-parse (1ms)
$ (mesh-con) git rev-parse --verify --quiet HEAD^{commit}
✓ git rev-parse (1ms)
$ (check) git clone --quiet --no-local --no-checkout /tmp/TestReplay8671105482020/006/check/mesh-controller /tmp/TestReplay8671105482020/006/check/judge-src
✓ git clone (31ms)
$ (judge-sr) git checkout --quiet --detach b2475d4f66739d87840cd83e3a4f13191d13a1f8
✓ git checkout (3ms)
$ (check) docker run --label mesh.build=build-1792250620197546038 --volume /tmp/TestReplay8671105482020/001/homes/build-1792250620197546038:/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038 --volume /tmp/TestReplay8671105482020/001/go-cache:/tmp/TestReplay8671105482020/001/go-cache --rm --network host --volume /tmp/TestReplay8671105482020/006:/tmp/TestReplay8671105482020/006 --workdir /tmp/TestReplay8671105482020/006/check/judge-src --user 0:0 --env HOME=/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038 --env GIT_CONFIG_COUNT=1 --env GIT_CONFIG_KEY_0=safe.directory --env GIT_CONFIG_VALUE_0=* --env XDG_CONFIG_HOME=/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038/.config --env GIT_CONFIG_GLOBAL=/dev/null --env GIT_CONFIG_NOSYSTEM=1 --env GOENV=off --env GOCACHE=/tmp/TestReplay8671105482020/001/go-cache --env GOPATH=/tmp/TestReplay8671105482020/001/homes/build-1792250620197546038/go --env CGO_ENABLED=0 --env GOFLAGS=-mod=vendor -buildvcs=false --env GOPROXY=off golang go build -o /tmp/TestReplay8671105482020/006/check/bin/judge-of-the-group ./cmd/mesh-controller
✓ docker run (169ms)
$ (.) docker ps -aq --filter label=mesh.build=build-1792250620197546038
✓ docker ps (0s)
release-1792250621230207913: 2 build(s) wait for a gate on anchor, laptop; one machine first, then the rest at once, each judged
release-1792250621230207913: sent anchor 1 build(s) that waited for a gate; judging them there
plan-app: tier 0 built; anchor already runs app's build: nothing sent again, judged from that send, going on from the readings of release-1792250621230207913
settings-1792250621937432229: the settings of app on the whole mesh — approved (ask s3): sent to anchor, laptop, one machine at a time, each judged
settings-1792250621937432229: sent anchor the settings of app on the whole mesh (ask s3), every build there kept; judging app there
settings-1792250621937432229: sent laptop the settings of app on the whole mesh (ask s3), every build there kept; judging app there
settings-1792250621937432229: the settings of app on the whole mesh (ask s3) delivered on anchor, laptop
mailer on the whole mesh:
+ tags.todo.name
run `push --behind` to send it to the machines running it
plan-tier: tier 0 built; sent 2 module(s) to anchor first in one send (node-tools, app1), the rest once its gate passes
plan-tier: node-tools passed its gate on anchor (healthy 1 times over 0s, by the tool runner's rule: one reading once it answers, after the node-engine's witness window (novox/hq ADR 0351)); the rest are sent
plan-tier: tier 0 built; sent node-tools, app1 to laptop, one send each
plan-tier: done — novox/mesh-catalog at c2, 1 tier(s)
requests on laptop now holds "tv-api" from anchor, sealed to both machines.
the mesh cannot read it back, will not replace it with one of its own, and will not rotate it
run `push anchor` and `push laptop` to send it
the vault now holds accept/<nil> (generation 1), accepted: sealed at this terminal to the vault's key for this call, opened in the vault alone and never remade by it; its machine takes it from the vault
this act by hand could NOT be recorded in the hand-act log, and is done anyway: the hand-act log mesh-controller_hand-acts is not on the bus — the controller asserts it at its start, so one older than this has not: nats: bucket not found
release-1792250636299130592: 2 build(s) wait for a gate on anchor, laptop; one machine first, then the rest at once, each judged
release-1792250636299130592 releases it; `plans release-1792250636299130592` says where it is
FAIL
FAIL github.com/novox/mesh-controller/cmd/mesh-controller 65s (shard 6 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 64s (shard 7 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 124s (shard 8 of 8: 134 tests)
ok github.com/novox/mesh-controller/internal/inventory 14s (shard 1 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 14s (shard 2 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 13s (shard 3 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/inventory 13s (shard 4 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/builder 16s (shard 1 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 18s (shard 2 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 32s (shard 3 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 37s (shard 4 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/link 22s (shard 1 of 4: 50 tests)
ok github.com/novox/mesh-controller/internal/link 19s (shard 2 of 4: 49 tests)
ok github.com/novox/mesh-controller/internal/link 21s (shard 3 of 4: 49 tests)
ok github.com/novox/mesh-controller/internal/link 17s (shard 4 of 4: 49 tests)
store tests, each run against the store:
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.26s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.27s)
./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.28s)
./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.28s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.25s)
./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.23s)
./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.00s)
./cmd/mesh-controller --- PASS: TestIssue969TheGateRaisesEachMachineAsItsEngineStatedItself (0.86s)
./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.36s)
./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.18s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.24s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.23s)
./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.20s)
./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.20s)
./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.26s)
./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.31s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.24s)
./cmd/mesh-controller --- PASS: TestReplay237 (0.22s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.22s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.29s)
./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.29s)
./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.22s)
./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.35s)
./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.38s)
./cmd/mesh-controller --- PASS: TestReplay201 (0.18s)
./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.17s)
./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.18s)
./cmd/mesh-controller --- PASS: TestReplay401 (0.32s)
./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.28s)
./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.28s)
./cmd/mesh-controller --- PASS: TestReplay340 (0.28s)
./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.19s)
./cmd/mesh-controller --- PASS: TestReplay349 (0.23s)
./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.20s)
./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s)
./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.27s)
./cmd/mesh-controller --- PASS: TestAWalkWhoseEveryBuildCameOutTheSameIsDone (0.16s)
./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.08s)
./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.62s)
./cmd/mesh-controller --- PASS: TestReplay164 (0.34s)
./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.19s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.19s)
./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.19s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.18s)
./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.50s)
./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.17s)
./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.16s)
./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.23s)
./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.50s)
./cmd/mesh-controller --- PASS: TestTheMergeGateJudgesEachManifestAgainstTheListOfTheTree (5.65s)
./cmd/mesh-controller --- PASS: TestRegistrationPublishesTheNewestTrunkListAndJudgesEveryModuleAgainstIt (0.22s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterPlacementMoves (0.41s)
./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.24s)
./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.21s)
./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.20s)
./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.24s)
./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.18s)
./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.19s)
./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.21s)
./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.20s)
./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.31s)
./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.20s)
./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.17s)
./cmd/mesh-controller --- PASS: TestTheProvisionerClientsAccountIsIssuedForItsServiceAndNeverInvented (0.22s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOwnSecretTakesThePathOfItsModulesForm (0.23s)
./cmd/mesh-controller --- PASS: TestAcceptForAProviderTakesThePathOfTheProvidersModule (0.26s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedTrustedModuleAnnouncesBeforeTheVaultIsAsked (0.25s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedModuleRecordsAHandActAndNeverTheValue (0.21s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOutsideOfferTakesThePathOfTheProvidersModule (0.27s)
./cmd/mesh-controller --- PASS: TestAnAskAtTheDeskTakesThePathOfItsModulesForm (0.25s)
./cmd/mesh-controller --- PASS: TestAnIssuedValueTakesThePathOfItsProvidersModule (0.29s)
./cmd/mesh-controller --- PASS: TestARotationTakesThePathOfItsModulesForm (0.23s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameWhileTheWordsAreStillInTheLayers (2.21s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterTheMoveOfPlacement (4.39s)
./cmd/mesh-controller --- PASS: TestTheSendSealsNoSecretOfAModuleHandedThere (0.25s)
./cmd/mesh-controller --- PASS: TestAModulesSecretsAreTheVaultsOnceItIsMarkedMoved (0.16s)
./cmd/mesh-controller --- PASS: TestEveryMachineIsToldTheSameAfterTheMoveOfConfig (21.35s)
./cmd/mesh-controller --- PASS: TestTheMoveOfConfigRefusesWhatWouldChangeAMachine (7.37s)
./cmd/mesh-controller --- PASS: TestTheSettingsVerbForwardsToConfigOnceTheValuesMoved (10.77s)
./cmd/mesh-controller --- PASS: TestTheSendCarriesTheVaultsBoxForACoreCredentialAndKeepsIt (0.37s)
./cmd/mesh-controller --- PASS: TestASilentVaultHoldsTheKeptBoxAndSaysSo (0.37s)
./cmd/mesh-controller --- PASS: TestACoreModuleFirstPlacedWhileTheVaultIsSilentIsSealedByTheController (0.29s)
./cmd/mesh-controller --- PASS: TestAnEngineBelowTheContractIsSentTheControllersSealAsBefore (0.28s)
./cmd/mesh-controller --- PASS: TestModuleIssueHandsACoveredAccountToTheVaultAndOnlyThat (0.32s)
./cmd/mesh-controller --- PASS: TestModuleIssueFailsWhenTheVaultDoesNotTakeACoveredAccount (0.25s)
./cmd/mesh-controller --- PASS: TestModuleIssueBeforeTheVaultIsInstalledKeepsTheValueAndHandsNothing (0.28s)
./cmd/mesh-controller --- PASS: TestARecordedModulesBundleOnlyMoveRollsOutInItsWalk (0.37s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatRecreatesAContainerWaits (0.69s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatTouchesDataOrAProviderWaits (0.72s)
./cmd/mesh-controller --- PASS: TestAPersonsRecordAndTheBusHoldEveryMove (0.54s)
./cmd/mesh-controller --- PASS: TestARecordedMoveThatCannotBeJudgedWaits (0.43s)
./cmd/mesh-controller --- PASS: TestReplay867 (3.43s)
./cmd/mesh-controller --- PASS: TestReplay867Recheck (3.25s)
./cmd/mesh-controller --- PASS: TestTheRecheckVerbAsksMeshDeliveryOnABusOfItsOwn (0.32s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController (3.07s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionJudgedWithTheValidatorIntoAReleaseBranchIsJudgedByItsOwnController (2.97s)
./cmd/mesh-controller --- PASS: TestAssigningTheClientIssuesItsAccount (0.19s)
./cmd/mesh-controller --- PASS: TestAnUnrelatedBatchWalksBesideAnOpenWalk (0.52s)
./cmd/mesh-controller --- PASS: TestARelatedBatchWaitsBehindTheOpenWalk (0.41s)
./cmd/mesh-controller --- PASS: TestAnOwnPathBatchNeverWalksBeside (0.42s)
./cmd/mesh-controller --- PASS: TestMergesHeardWhileAnotherHolderHasThePlansAreRecordedAndCarried (7.39s)
./cmd/mesh-controller --- PASS: TestABatchWindowClosesByTheExpiryOfItsKey (1.59s)
./cmd/mesh-controller --- PASS: TestEveryMoveAMergeAndTheCutMakeOfAPlanIsSaid (0.26s)
./cmd/mesh-controller --- PASS: TestARolloutAdvancesOnEventsAndAReplacedControllerResumesIt (3.62s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoByTheDeliverVerbIsAskedWithNoOtherEvent (0.82s)
./cmd/mesh-controller --- PASS: TestTwoMergesWithinAMinuteLeaveEachOpenPullRequestOneQueuedCheck (0.83s)
./cmd/mesh-controller --- FAIL: TestADeliveryGroupMovingAModuleMachinesRunPassesTheGate (3.26s)
./cmd/mesh-controller --- PASS: TestAModuleMovesOnTheOperatorsApproveOfTheMergeThatMovedIt (1.73s)
./cmd/mesh-controller --- PASS: TestAModuleBuiltFromANewRepositoryIsRegisteredOnlyOnTheOperatorsApproveOnTheBus (0.72s)
./cmd/mesh-controller FAIL: go test exited 1
./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.13s)
./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.13s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.10s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.10s)
./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.09s)
./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.08s)
./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.23s)
./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.13s)
./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.13s)
./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.12s)
./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.14s)
./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.12s)
./internal/inventory --- PASS: TestAModuleInTheConfigFormIsMirroredWithItsWholeDeclaration (0.09s)
./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.10s)
./internal/inventory --- PASS: TestANewerBuildsListReplacesTheKeptOneAndAnOlderOneHeardLaterDoesNot (0.10s)
./internal/inventory --- PASS: TestPlacementMovesOutOfTheSettingsLayers (0.50s)
./internal/inventory --- PASS: TestASettingRoutesPlacementBesideTheLayer (0.13s)
./internal/inventory --- PASS: TestTheProvisionerClientsMachineHasAnAccountOfItsOwn (0.13s)
./internal/inventory --- PASS: TestTheFourWordsAreKeptBesideTheLayer (0.12s)
./internal/inventory --- PASS: TestALayerStillHoldingTheWordsReadsThemAsPlacement (0.13s)
./internal/inventory --- PASS: TestTheMoveOfPlacementMovesWhatTheLayersStillHold (0.11s)
./internal/inventory --- PASS: TestTheMoveReadsEveryRowSealedToAMachineAsItIs (0.17s)
./internal/inventory --- PASS: TestASendKeepsThePlansItHandedAndTheMirrorCarriesThem (0.12s)
./internal/inventory --- PASS: TestTheLayersAreReadUntilTheMoveOfConfigHasRun (0.12s)
./internal/inventory --- PASS: TestAModuleReadsMeshConfigOnlyWhereItsValuesAre (0.12s)
./internal/inventory --- PASS: TestTheEndOfTheMoveRefusesALayerChangedSinceItWasRead (0.10s)
./internal/inventory --- PASS: TestACoreCredentialsVaultBoxIsKeptPerMachineAndReplaced (0.09s)
./internal/inventory --- PASS: TestWhatRunsIsTheRegisteredBuildNotANewerOnePutBack (0.11s)
./internal/recordmirror --- PASS: TestNatsAnAssignmentAndARegistrationEachChangeOneKeyAndRaiseOneEvent (3.58s)
./internal/recordmirror --- PASS: TestNatsTheListOfPredefinedKeysKeptChangesTheMirrorsOneKey (1.51s)
2 store test(s) listed in testdata/store-tests did not run and pass against the store
--- what failed, picked from the whole of its output (the whole is in the build's log)
FAIL github.com/novox/mesh-controller/cmd/mesh-controller 71s (shard 5 of 8: 134 tests)
--- FAIL: TestTheMergeCheckVetsAndTestsEveryNestedGoModule (0.00s)
merge_check_nested_test.go:35: a repository with no nested module failed: exit status 2
lstat cmd: no such file or directory
lstat internal: no such file or directory
lstat examples: no such file or directory
FAIL github.com/novox/mesh-controller/cmd/mesh-controller 65s (shard 6 of 8: 134 tests)
```
mesh/repo-check head 7ee2b42230dc merged into trunk b8c810a3499c beside mesh-catalog#348@40eed3a0 — pass: THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh):…
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
mesh/repo-check: PASS — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passed
Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
read by no module's build: check-nested-modules.sh, cmd/mesh-controller/build_source_test.go, cmd/mesh-controller/merge_check_nested_test.go, cmd/mesh-controller/merge_gate_test.go, cmd/mesh-controller/moved_bus_test.go, cmd/mesh-controller/moved_test.go, cmd/mesh-controller/planner_rules_test.go, internal/broker/testdata/composed.conf, internal/link/contracts_test.go, merge-check.sh, testdata/store-tests
Run by the build seat on shanks as build-1792250998997742786 (builds --log build-1792250998997742786).
Reviewed by reviewer-1025@shanks: issue 1025 / ADR 0420 §4-7 approved after 3 rounds; both checks pass at 7ee2b422, the store tests for the group move and the Approve-only registration (bus test) passed in the log. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
ready at 7ee2b42230dc276b59229c9c23706be0527fc432
Reviewed by reviewer-1025@shanks: issue 1025 / ADR 0420 §4-7 approved after 3 rounds; both checks pass at 7ee2b422, the store tests for the group move and the Approve-only registration (bus test) passed in the log. Marked through mesh-delivery.mark-ready (novox/hq issue 913).
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.
Release 1 of design 47's phase II (issue 1025; ADR 0420 §4-§7, accepted 2026-10-17). One delivery group with mesh-catalog's feat/move-a-module (mesh-delivery announces each merge with its Approve).
mergedannouncement whose warrant, read back from the router, is the operator's Approve of that head (§7); a verb, no warrant or another head's warrant is still refused (ADR 0266 §44).Reviewed locally by an independent reviewer (round 2 of 3, approved at
e42becb4). Integration test: moved_bus_test.go (store and bus), run by this merge check. Opened along the way: issue 1028 (hardening: match the head under its delivery id).Delivery
novox/mesh-controller@7ee2b42230dc— delivered since 2026-10-17T15:46:20ZDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Group
feat/move-a-module, in order: novox/mesh-controller@7ee2b42230 → novox/mesh-catalog@40eed3a036Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
e42becb4Judged: head
e42becb479a4merged into trunkb8c810a3499c; read beside it: mesh-catalog4c1d9adeaccb, mesh-controller-mainb8c810a3499c, mesh-hostcd13f7726ef0, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-catalog#348
40eed3a036dbmerged onto0d2fc5e4d79c(main)mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: FAIL — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh failed: --- FAIL: TestTheMergeCheckVetsAndTestsEveryNestedGoModule (0.00s)Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1792250399175088280(builds --log build-1792250399175088280).Merge check at
7ee2b422Judged: head
7ee2b42230dcmerged into trunkb8c810a3499c; read beside it: mesh-catalog0b0503a29e5e, mesh-controller-mainb8c810a3499c, mesh-hostcd13f7726ef0, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-catalog#348
40eed3a036dbmerged onto0d2fc5e4d79c(main)mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1792250998997742786(builds --log build-1792250998997742786).ready at
7ee2b42230Reviewed by reviewer-1025@shanks: issue 1025 / ADR 0420 §4-7 approved after 3 rounds; both checks pass at
7ee2b422, the store tests for the group move and the Approve-only registration (bus test) passed in the log. Marked through mesh-delivery.mark-ready (novox/hq issue 913).