Design 47 phase II release 2 (playbook 07). One delivery group with mesh-catalog's feat/whole-modules, which removes the two modules from the catalogue; the merge gate judges the pair as a move (ADR 0420 §6, release 1 / issue 1025).
modules/build-agent and modules/route-proxy arrive whole; manifests byte-identical to the catalogue's (identity kept, §8); their contexts now name their own repository (§4).
route-proxy's provider program vendors mesh-sdk so check-nested-modules.sh tests it offline (§5; milestone 6 / issue 979 replaces vendoring).
One route-proxy Dockerfile: the module's; Makefile proxy-image builds it; examples/route-proxy/Dockerfile removed.
ADR 0420 §1's two refusals: the merge gate (shelfWithChange) and module check (via MESH_CHECK_REPOSITORY) refuse an artifact context naming another repository.
Issue 1043 (found by the first check run): a member's own merge gate sees a move through the core clones beside the check (ADR 0382), so neither member's own check refuses it (issue 239 / ADR 0236); a clone at main finds no move. The tests that read build-agent and route-proxy read them from this repository.
Reviewed (round 1 approve; phase 3 extra cycle approve). Opened beside it: 1040, 1041.
Acceptance: after the delivery, the controller registers build-agent and route-proxy from novox/mesh-controller at modules/build-agent and modules/route-proxy on the operator's Approve (ADR 0420 §7), they keep running on the machines that ran them, and the catalogue holds neither.
Design 47 phase II release 2 (playbook 07). One delivery group with mesh-catalog's feat/whole-modules, which removes the two modules from the catalogue; the merge gate judges the pair as a move (ADR 0420 §6, release 1 / issue 1025).
- modules/build-agent and modules/route-proxy arrive whole; manifests byte-identical to the catalogue's (identity kept, §8); their contexts now name their own repository (§4).
- route-proxy's provider program vendors mesh-sdk so check-nested-modules.sh tests it offline (§5; milestone 6 / issue 979 replaces vendoring).
- One route-proxy Dockerfile: the module's; Makefile proxy-image builds it; examples/route-proxy/Dockerfile removed.
- ADR 0420 §1's two refusals: the merge gate (shelfWithChange) and `module check` (via MESH_CHECK_REPOSITORY) refuse an artifact context naming another repository.
- Issue 1043 (found by the first check run): a member's own merge gate sees a move through the core clones beside the check (ADR 0382), so neither member's own check refuses it (issue 239 / ADR 0236); a clone at main finds no move. The tests that read build-agent and route-proxy read them from this repository.
Reviewed (round 1 approve; phase 3 extra cycle approve). Opened beside it: 1040, 1041.
Acceptance: after the delivery, the controller registers build-agent and route-proxy from novox/mesh-controller at modules/build-agent and modules/route-proxy on the operator's Approve (ADR 0420 §7), they keep running on the machines that ran them, and the catalogue holds neither.
mesh/delivery-group group feat/whole-modules rejected: its order contradicts itself: novox/mesh-catalog@c47d94925811 and novox/mesh-controller@48f5a7d3a99a: bu…
Deliverynovox/mesh-controller@874a91a3c64f — failed since 2026-10-17T17:35:39Z
Covered: covered after its failure: a later walk that contains it was delivered: plan-1792258323655869835 (novox/mesh-controller at d5d54498 into main, done, contains its merge d5d54498)
Delivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
tier 0: mesh-controller, route-proxy
ace: receives route-proxy
novox: receives mesh-controller, route-proxy
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy 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
Transitions
2026-10-17 17:21 (new) → proposed (announced): novox/mesh-controller#370's head announced
2026-10-17 17:28 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-17 17:28 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-17 17:33 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 17:33 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 17:35 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@874a91a3c64f` — **failed** since 2026-10-17T17:35:39Z
**Covered**: covered after its failure: a later walk that contains it was delivered: plan-1792258323655869835 (novox/mesh-controller at d5d54498 into main, done, contains its merge d5d54498)
**Delivery plan** — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
- tier 0: mesh-controller, route-proxy
- ace: receives route-proxy
- novox: receives mesh-controller, route-proxy
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy is judged on its first machine
**Group** `feat/whole-modules`, in order: novox/mesh-controller@874a91a3c64f → novox/mesh-catalog@795806efa7ad
- novox/mesh-controller@874a91a3c64f before novox/mesh-catalog@795806efa7ad: declared, over 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
**Transitions**
- 2026-10-17 17:21 (new) → proposed (announced): novox/mesh-controller#370's head announced
- 2026-10-17 17:28 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-17 17:28 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-17 17:33 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 17:33 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 17:35 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh/merge-gate: FAIL — 2 problem(s) the change brings; the first: modules/build-agent defines build-agent, which the mesh builds from novox/mesh-catalog: two definitions of one module name (issue 239) (modules: mesh-controller, route-proxy, new:modules/build-agent, new:modules/route-proxy)
mesh/repo-check: FAIL — its merge-check.sh failed: --- FAIL: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (0.00s); and TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry, TestRouteProxyKeepsItsPublicAccountDirectory
Delivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
tier 0: mesh-controller, route-proxy
ace: receives route-proxy
novox: receives mesh-controller, route-proxy
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy is judged on its first machine
read by no module's build: Makefile, check-nested-modules.sh, cmd/mesh-controller/check_test.go, cmd/mesh-controller/merge_gate_test.go
Run by the build seat on ace as build-1792254310998900301 (builds --log build-1792254310998900301).
? github.com/novox/mesh-controller/internal/beside [no test files]
ok github.com/novox/mesh-controller/internal/broker 57.124s
--- FAIL: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (0.00s)
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry (0.00s)
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestRouteProxyKeepsItsPublicAccountDirectory (0.00s)
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: route-proxy does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/route-proxy/module.json: no such file or directory
FAIL
FAIL github.com/novox/mesh-controller/internal/catalogue 22.537s
ok github.com/novox/mesh-controller/internal/conditions 2.878s
ok github.com/novox/mesh-controller/internal/envfile 1.018s
ok github.com/novox/mesh-controller/internal/facts 1.020s
ok github.com/novox/mesh-controller/internal/identity 7.163s
ok github.com/novox/mesh-controller/internal/lease 10.273s
ok github.com/novox/mesh-controller/internal/licences 5.408s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.078s
ok github.com/novox/mesh-controller/internal/lint 3.076s
ok github.com/novox/mesh-controller/internal/outward 1.115s
ok github.com/novox/mesh-controller/internal/overlay 1.119s
ok github.com/novox/mesh-controller/internal/recordmirror 17.703s
ok github.com/novox/mesh-controller/internal/secrets 1.574s
ok github.com/novox/mesh-controller/internal/store 3.800s
ok github.com/novox/mesh-controller/internal/testbus 1.289s
ok github.com/novox/mesh-controller/internal/token 1.083s
FAIL
ok github.com/novox/mesh-controller/cmd/mesh-controller 168s (shard 1 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 88s (shard 2 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 61s (shard 3 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 107s (shard 4 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 87s (shard 5 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 80s (shard 6 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 66s (shard 7 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 81s (shard 8 of 8: 134 tests)
ok github.com/novox/mesh-controller/internal/inventory 18s (shard 1 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 18s (shard 2 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 16s (shard 3 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/inventory 16s (shard 4 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/builder 17s (shard 1 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 20s (shard 2 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 47s (shard 3 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 50s (shard 4 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/link 23s (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 18s (shard 4 of 4: 49 tests)
nested module modules/build-agent:
ok build-agent 1.012s
nested module modules/route-proxy:
ok route-proxy/cmd/route-provider 1.012s
store tests, each run against the store:
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.34s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.34s)
./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.33s)
./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.35s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.30s)
./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.25s)
./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.01s)
./cmd/mesh-controller --- PASS: TestIssue969TheGateRaisesEachMachineAsItsEngineStatedItself (0.98s)
./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.36s)
./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.19s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.25s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.25s)
./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.21s)
./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.20s)
./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.26s)
./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.21s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.25s)
./cmd/mesh-controller --- PASS: TestReplay237 (0.23s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.24s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.26s)
./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.26s)
./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.24s)
./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.52s)
./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.38s)
./cmd/mesh-controller --- PASS: TestReplay201 (0.28s)
./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.25s)
./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.24s)
./cmd/mesh-controller --- PASS: TestReplay401 (0.33s)
./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.29s)
./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.31s)
./cmd/mesh-controller --- PASS: TestReplay340 (0.27s)
./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.20s)
./cmd/mesh-controller --- PASS: TestReplay349 (0.24s)
./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.24s)
./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s)
./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.30s)
./cmd/mesh-controller --- PASS: TestAWalkWhoseEveryBuildCameOutTheSameIsDone (0.20s)
./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s)
./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.85s)
./cmd/mesh-controller --- PASS: TestReplay164 (0.33s)
./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.24s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.22s)
./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.18s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.20s)
./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.56s)
./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.18s)
./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.18s)
./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.26s)
./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.56s)
./cmd/mesh-controller --- PASS: TestTheMergeGateJudgesEachManifestAgainstTheListOfTheTree (5.43s)
./cmd/mesh-controller --- PASS: TestRegistrationPublishesTheNewestTrunkListAndJudgesEveryModuleAgainstIt (0.23s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterPlacementMoves (0.36s)
./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.25s)
./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.23s)
./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.19s)
./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.25s)
./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.18s)
./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.19s)
./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.22s)
./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.21s)
./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.37s)
./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.22s)
./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.20s)
./cmd/mesh-controller --- PASS: TestTheProvisionerClientsAccountIsIssuedForItsServiceAndNeverInvented (0.23s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOwnSecretTakesThePathOfItsModulesForm (0.25s)
./cmd/mesh-controller --- PASS: TestAcceptForAProviderTakesThePathOfTheProvidersModule (0.28s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedTrustedModuleAnnouncesBeforeTheVaultIsAsked (0.27s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedModuleRecordsAHandActAndNeverTheValue (0.22s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOutsideOfferTakesThePathOfTheProvidersModule (0.28s)
./cmd/mesh-controller --- PASS: TestAnAskAtTheDeskTakesThePathOfItsModulesForm (0.27s)
./cmd/mesh-controller --- PASS: TestAnIssuedValueTakesThePathOfItsProvidersModule (0.32s)
./cmd/mesh-controller --- PASS: TestARotationTakesThePathOfItsModulesForm (0.23s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameWhileTheWordsAreStillInTheLayers (2.27s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterTheMoveOfPlacement (3.98s)
./cmd/mesh-controller --- PASS: TestTheSendSealsNoSecretOfAModuleHandedThere (0.28s)
./cmd/mesh-controller --- PASS: TestAModulesSecretsAreTheVaultsOnceItIsMarkedMoved (0.17s)
./cmd/mesh-controller --- PASS: TestEveryMachineIsToldTheSameAfterTheMoveOfConfig (21.31s)
./cmd/mesh-controller --- PASS: TestTheMoveOfConfigRefusesWhatWouldChangeAMachine (10.37s)
./cmd/mesh-controller --- PASS: TestTheSettingsVerbForwardsToConfigOnceTheValuesMoved (13.94s)
./cmd/mesh-controller --- PASS: TestTheSendCarriesTheVaultsBoxForACoreCredentialAndKeepsIt (0.51s)
./cmd/mesh-controller --- PASS: TestASilentVaultHoldsTheKeptBoxAndSaysSo (0.51s)
./cmd/mesh-controller --- PASS: TestACoreModuleFirstPlacedWhileTheVaultIsSilentIsSealedByTheController (0.35s)
./cmd/mesh-controller --- PASS: TestAnEngineBelowTheContractIsSentTheControllersSealAsBefore (0.38s)
./cmd/mesh-controller --- PASS: TestModuleIssueHandsACoveredAccountToTheVaultAndOnlyThat (0.35s)
./cmd/mesh-controller --- PASS: TestModuleIssueFailsWhenTheVaultDoesNotTakeACoveredAccount (0.30s)
./cmd/mesh-controller --- PASS: TestModuleIssueBeforeTheVaultIsInstalledKeepsTheValueAndHandsNothing (0.31s)
./cmd/mesh-controller --- PASS: TestARecordedModulesBundleOnlyMoveRollsOutInItsWalk (0.37s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatRecreatesAContainerWaits (0.63s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatTouchesDataOrAProviderWaits (0.69s)
./cmd/mesh-controller --- PASS: TestAPersonsRecordAndTheBusHoldEveryMove (0.47s)
./cmd/mesh-controller --- PASS: TestARecordedMoveThatCannotBeJudgedWaits (0.34s)
./cmd/mesh-controller --- PASS: TestReplay867 (3.67s)
./cmd/mesh-controller --- PASS: TestReplay867Recheck (3.53s)
./cmd/mesh-controller --- PASS: TestTheRecheckVerbAsksMeshDeliveryOnABusOfItsOwn (0.34s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController (3.44s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionJudgedWithTheValidatorIntoAReleaseBranchIsJudgedByItsOwnController (3.57s)
./cmd/mesh-controller --- PASS: TestAssigningTheClientIssuesItsAccount (0.24s)
./cmd/mesh-controller --- PASS: TestAnUnrelatedBatchWalksBesideAnOpenWalk (0.39s)
./cmd/mesh-controller --- PASS: TestARelatedBatchWaitsBehindTheOpenWalk (0.39s)
./cmd/mesh-controller --- PASS: TestAnOwnPathBatchNeverWalksBeside (0.35s)
./cmd/mesh-controller --- PASS: TestMergesHeardWhileAnotherHolderHasThePlansAreRecordedAndCarried (7.38s)
./cmd/mesh-controller --- PASS: TestABatchWindowClosesByTheExpiryOfItsKey (1.59s)
./cmd/mesh-controller --- PASS: TestEveryMoveAMergeAndTheCutMakeOfAPlanIsSaid (0.24s)
./cmd/mesh-controller --- PASS: TestARolloutAdvancesOnEventsAndAReplacedControllerResumesIt (3.66s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoByTheDeliverVerbIsAskedWithNoOtherEvent (0.88s)
./cmd/mesh-controller --- PASS: TestTwoMergesWithinAMinuteLeaveEachOpenPullRequestOneQueuedCheck (1.43s)
./cmd/mesh-controller --- PASS: TestADeliveryGroupMovingAModuleMachinesRunPassesTheGate (7.54s)
./cmd/mesh-controller --- PASS: TestAModuleMovesOnTheOperatorsApproveOfTheMergeThatMovedIt (1.81s)
./cmd/mesh-controller --- PASS: TestAModuleBuiltFromANewRepositoryIsRegisteredOnlyOnTheOperatorsApproveOnTheBus (0.72s)
./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.20s)
./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.20s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.19s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.14s)
./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.09s)
./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.15s)
./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.13s)
./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.14s)
./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.16s)
./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.13s)
./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.11s)
./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.13s)
./internal/inventory --- PASS: TestAModuleInTheConfigFormIsMirroredWithItsWholeDeclaration (0.14s)
./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.11s)
./internal/inventory --- PASS: TestANewerBuildsListReplacesTheKeptOneAndAnOlderOneHeardLaterDoesNot (0.14s)
./internal/inventory --- PASS: TestPlacementMovesOutOfTheSettingsLayers (0.72s)
./internal/inventory --- PASS: TestASettingRoutesPlacementBesideTheLayer (0.31s)
./internal/inventory --- PASS: TestTheProvisionerClientsMachineHasAnAccountOfItsOwn (0.58s)
./internal/inventory --- PASS: TestTheFourWordsAreKeptBesideTheLayer (0.23s)
./internal/inventory --- PASS: TestALayerStillHoldingTheWordsReadsThemAsPlacement (0.16s)
./internal/inventory --- PASS: TestTheMoveOfPlacementMovesWhatTheLayersStillHold (0.27s)
./internal/inventory --- PASS: TestTheMoveReadsEveryRowSealedToAMachineAsItIs (0.25s)
./internal/inventory --- PASS: TestASendKeepsThePlansItHandedAndTheMirrorCarriesThem (0.23s)
./internal/inventory --- PASS: TestTheLayersAreReadUntilTheMoveOfConfigHasRun (0.16s)
./internal/inventory --- PASS: TestAModuleReadsMeshConfigOnlyWhereItsValuesAre (0.14s)
./internal/inventory --- PASS: TestTheEndOfTheMoveRefusesALayerChangedSinceItWasRead (0.11s)
./internal/inventory --- PASS: TestACoreCredentialsVaultBoxIsKeptPerMachineAndReplaced (0.17s)
./internal/inventory --- PASS: TestWhatRunsIsTheRegisteredBuildNotANewerOnePutBack (0.20s)
./internal/recordmirror --- PASS: TestNatsAnAssignmentAndARegistrationEachChangeOneKeyAndRaiseOneEvent (3.55s)
./internal/recordmirror --- PASS: TestNatsTheListOfPredefinedKeysKeptChangesTheMirrorsOneKey (1.57s)
the suite failed: each package or shard that failed is said above with its output
--- what failed, picked from the whole of its output (the whole is in the build's log)
--- FAIL: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (0.00s)
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry (0.00s)
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestRouteProxyKeepsItsPublicAccountDirectory (0.00s)
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: route-proxy does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/route-proxy/module.json: no such file or directory
FAIL github.com/novox/mesh-controller/internal/catalogue 22.537s
**Merge check** at `48f5a7d3`
Judged: head `48f5a7d3a99a` merged into trunk `c43772fd94eb`; read beside it: mesh-catalog `2bc4e3c1ce6c`, mesh-controller-main `c43772fd94eb`, mesh-host `6469e8238443`, mesh-tools `7412c5b6c9c5`
Siblings read beside it: novox/mesh-catalog#350 `c47d94925811` merged onto `54b3ce503e79` (main)
- `mesh/merge-gate`: **FAIL** — 2 problem(s) the change brings; the first: modules/build-agent defines build-agent, which the mesh builds from novox/mesh-catalog: two definitions of one module name (issue 239) (modules: mesh-controller, route-proxy, new:modules/build-agent, new:modules/route-proxy)
- `mesh/repo-check`: **FAIL** — its merge-check.sh failed: --- FAIL: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (0.00s); and TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry, TestRouteProxyKeepsItsPublicAccountDirectory
**Delivery plan** — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
- tier 0: mesh-controller, route-proxy
- ace: receives route-proxy
- novox: receives mesh-controller, route-proxy
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy is judged on its first machine
- read by no module's build: Makefile, check-nested-modules.sh, cmd/mesh-controller/check_test.go, cmd/mesh-controller/merge_gate_test.go
Run by the build seat on ace as `build-1792254310998900301` (`builds --log build-1792254310998900301`).
```
? github.com/novox/mesh-controller/internal/beside [no test files]
ok github.com/novox/mesh-controller/internal/broker 57.124s
--- FAIL: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (0.00s)
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry (0.00s)
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestRouteProxyKeepsItsPublicAccountDirectory (0.00s)
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: route-proxy does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/route-proxy/module.json: no such file or directory
FAIL
FAIL github.com/novox/mesh-controller/internal/catalogue 22.537s
ok github.com/novox/mesh-controller/internal/conditions 2.878s
ok github.com/novox/mesh-controller/internal/envfile 1.018s
ok github.com/novox/mesh-controller/internal/facts 1.020s
ok github.com/novox/mesh-controller/internal/identity 7.163s
ok github.com/novox/mesh-controller/internal/lease 10.273s
ok github.com/novox/mesh-controller/internal/licences 5.408s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.078s
ok github.com/novox/mesh-controller/internal/lint 3.076s
ok github.com/novox/mesh-controller/internal/outward 1.115s
ok github.com/novox/mesh-controller/internal/overlay 1.119s
ok github.com/novox/mesh-controller/internal/recordmirror 17.703s
ok github.com/novox/mesh-controller/internal/secrets 1.574s
ok github.com/novox/mesh-controller/internal/store 3.800s
ok github.com/novox/mesh-controller/internal/testbus 1.289s
ok github.com/novox/mesh-controller/internal/token 1.083s
FAIL
ok github.com/novox/mesh-controller/cmd/mesh-controller 168s (shard 1 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 88s (shard 2 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 61s (shard 3 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 107s (shard 4 of 8: 135 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 87s (shard 5 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 80s (shard 6 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 66s (shard 7 of 8: 134 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 81s (shard 8 of 8: 134 tests)
ok github.com/novox/mesh-controller/internal/inventory 18s (shard 1 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 18s (shard 2 of 4: 78 tests)
ok github.com/novox/mesh-controller/internal/inventory 16s (shard 3 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/inventory 16s (shard 4 of 4: 77 tests)
ok github.com/novox/mesh-controller/internal/builder 17s (shard 1 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 20s (shard 2 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 47s (shard 3 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/builder 50s (shard 4 of 4: 55 tests)
ok github.com/novox/mesh-controller/internal/link 23s (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 18s (shard 4 of 4: 49 tests)
nested module modules/build-agent:
ok build-agent 1.012s
nested module modules/route-proxy:
ok route-proxy/cmd/route-provider 1.012s
store tests, each run against the store:
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.34s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.34s)
./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.33s)
./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.35s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.30s)
./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.25s)
./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.01s)
./cmd/mesh-controller --- PASS: TestIssue969TheGateRaisesEachMachineAsItsEngineStatedItself (0.98s)
./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.36s)
./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.19s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.25s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.25s)
./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.21s)
./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.20s)
./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.26s)
./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.21s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.25s)
./cmd/mesh-controller --- PASS: TestReplay237 (0.23s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.24s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.26s)
./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.26s)
./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.24s)
./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.52s)
./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.38s)
./cmd/mesh-controller --- PASS: TestReplay201 (0.28s)
./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.25s)
./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.24s)
./cmd/mesh-controller --- PASS: TestReplay401 (0.33s)
./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.29s)
./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.31s)
./cmd/mesh-controller --- PASS: TestReplay340 (0.27s)
./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.20s)
./cmd/mesh-controller --- PASS: TestReplay349 (0.24s)
./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.24s)
./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s)
./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.30s)
./cmd/mesh-controller --- PASS: TestAWalkWhoseEveryBuildCameOutTheSameIsDone (0.20s)
./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s)
./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.85s)
./cmd/mesh-controller --- PASS: TestReplay164 (0.33s)
./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.24s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.22s)
./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.18s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.20s)
./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.56s)
./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.18s)
./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.18s)
./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.26s)
./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.56s)
./cmd/mesh-controller --- PASS: TestTheMergeGateJudgesEachManifestAgainstTheListOfTheTree (5.43s)
./cmd/mesh-controller --- PASS: TestRegistrationPublishesTheNewestTrunkListAndJudgesEveryModuleAgainstIt (0.23s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterPlacementMoves (0.36s)
./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.25s)
./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.23s)
./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.19s)
./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.25s)
./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.18s)
./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.19s)
./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.22s)
./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.21s)
./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.37s)
./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.22s)
./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.20s)
./cmd/mesh-controller --- PASS: TestTheProvisionerClientsAccountIsIssuedForItsServiceAndNeverInvented (0.23s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOwnSecretTakesThePathOfItsModulesForm (0.25s)
./cmd/mesh-controller --- PASS: TestAcceptForAProviderTakesThePathOfTheProvidersModule (0.28s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedTrustedModuleAnnouncesBeforeTheVaultIsAsked (0.27s)
./cmd/mesh-controller --- PASS: TestAcceptForAMovedModuleRecordsAHandActAndNeverTheValue (0.22s)
./cmd/mesh-controller --- PASS: TestAcceptOfAnOutsideOfferTakesThePathOfTheProvidersModule (0.28s)
./cmd/mesh-controller --- PASS: TestAnAskAtTheDeskTakesThePathOfItsModulesForm (0.27s)
./cmd/mesh-controller --- PASS: TestAnIssuedValueTakesThePathOfItsProvidersModule (0.32s)
./cmd/mesh-controller --- PASS: TestARotationTakesThePathOfItsModulesForm (0.23s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameWhileTheWordsAreStillInTheLayers (2.27s)
./cmd/mesh-controller --- PASS: TestADeclarationIsTheSameAfterTheMoveOfPlacement (3.98s)
./cmd/mesh-controller --- PASS: TestTheSendSealsNoSecretOfAModuleHandedThere (0.28s)
./cmd/mesh-controller --- PASS: TestAModulesSecretsAreTheVaultsOnceItIsMarkedMoved (0.17s)
./cmd/mesh-controller --- PASS: TestEveryMachineIsToldTheSameAfterTheMoveOfConfig (21.31s)
./cmd/mesh-controller --- PASS: TestTheMoveOfConfigRefusesWhatWouldChangeAMachine (10.37s)
./cmd/mesh-controller --- PASS: TestTheSettingsVerbForwardsToConfigOnceTheValuesMoved (13.94s)
./cmd/mesh-controller --- PASS: TestTheSendCarriesTheVaultsBoxForACoreCredentialAndKeepsIt (0.51s)
./cmd/mesh-controller --- PASS: TestASilentVaultHoldsTheKeptBoxAndSaysSo (0.51s)
./cmd/mesh-controller --- PASS: TestACoreModuleFirstPlacedWhileTheVaultIsSilentIsSealedByTheController (0.35s)
./cmd/mesh-controller --- PASS: TestAnEngineBelowTheContractIsSentTheControllersSealAsBefore (0.38s)
./cmd/mesh-controller --- PASS: TestModuleIssueHandsACoveredAccountToTheVaultAndOnlyThat (0.35s)
./cmd/mesh-controller --- PASS: TestModuleIssueFailsWhenTheVaultDoesNotTakeACoveredAccount (0.30s)
./cmd/mesh-controller --- PASS: TestModuleIssueBeforeTheVaultIsInstalledKeepsTheValueAndHandsNothing (0.31s)
./cmd/mesh-controller --- PASS: TestARecordedModulesBundleOnlyMoveRollsOutInItsWalk (0.37s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatRecreatesAContainerWaits (0.63s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatTouchesDataOrAProviderWaits (0.69s)
./cmd/mesh-controller --- PASS: TestAPersonsRecordAndTheBusHoldEveryMove (0.47s)
./cmd/mesh-controller --- PASS: TestARecordedMoveThatCannotBeJudgedWaits (0.34s)
./cmd/mesh-controller --- PASS: TestReplay867 (3.67s)
./cmd/mesh-controller --- PASS: TestReplay867Recheck (3.53s)
./cmd/mesh-controller --- PASS: TestTheRecheckVerbAsksMeshDeliveryOnABusOfItsOwn (0.34s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController (3.44s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionJudgedWithTheValidatorIntoAReleaseBranchIsJudgedByItsOwnController (3.57s)
./cmd/mesh-controller --- PASS: TestAssigningTheClientIssuesItsAccount (0.24s)
./cmd/mesh-controller --- PASS: TestAnUnrelatedBatchWalksBesideAnOpenWalk (0.39s)
./cmd/mesh-controller --- PASS: TestARelatedBatchWaitsBehindTheOpenWalk (0.39s)
./cmd/mesh-controller --- PASS: TestAnOwnPathBatchNeverWalksBeside (0.35s)
./cmd/mesh-controller --- PASS: TestMergesHeardWhileAnotherHolderHasThePlansAreRecordedAndCarried (7.38s)
./cmd/mesh-controller --- PASS: TestABatchWindowClosesByTheExpiryOfItsKey (1.59s)
./cmd/mesh-controller --- PASS: TestEveryMoveAMergeAndTheCutMakeOfAPlanIsSaid (0.24s)
./cmd/mesh-controller --- PASS: TestARolloutAdvancesOnEventsAndAReplacedControllerResumesIt (3.66s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoByTheDeliverVerbIsAskedWithNoOtherEvent (0.88s)
./cmd/mesh-controller --- PASS: TestTwoMergesWithinAMinuteLeaveEachOpenPullRequestOneQueuedCheck (1.43s)
./cmd/mesh-controller --- PASS: TestADeliveryGroupMovingAModuleMachinesRunPassesTheGate (7.54s)
./cmd/mesh-controller --- PASS: TestAModuleMovesOnTheOperatorsApproveOfTheMergeThatMovedIt (1.81s)
./cmd/mesh-controller --- PASS: TestAModuleBuiltFromANewRepositoryIsRegisteredOnlyOnTheOperatorsApproveOnTheBus (0.72s)
./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.20s)
./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.20s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.19s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.14s)
./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.09s)
./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.15s)
./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.13s)
./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.14s)
./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.16s)
./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.13s)
./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.11s)
./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.13s)
./internal/inventory --- PASS: TestAModuleInTheConfigFormIsMirroredWithItsWholeDeclaration (0.14s)
./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.11s)
./internal/inventory --- PASS: TestANewerBuildsListReplacesTheKeptOneAndAnOlderOneHeardLaterDoesNot (0.14s)
./internal/inventory --- PASS: TestPlacementMovesOutOfTheSettingsLayers (0.72s)
./internal/inventory --- PASS: TestASettingRoutesPlacementBesideTheLayer (0.31s)
./internal/inventory --- PASS: TestTheProvisionerClientsMachineHasAnAccountOfItsOwn (0.58s)
./internal/inventory --- PASS: TestTheFourWordsAreKeptBesideTheLayer (0.23s)
./internal/inventory --- PASS: TestALayerStillHoldingTheWordsReadsThemAsPlacement (0.16s)
./internal/inventory --- PASS: TestTheMoveOfPlacementMovesWhatTheLayersStillHold (0.27s)
./internal/inventory --- PASS: TestTheMoveReadsEveryRowSealedToAMachineAsItIs (0.25s)
./internal/inventory --- PASS: TestASendKeepsThePlansItHandedAndTheMirrorCarriesThem (0.23s)
./internal/inventory --- PASS: TestTheLayersAreReadUntilTheMoveOfConfigHasRun (0.16s)
./internal/inventory --- PASS: TestAModuleReadsMeshConfigOnlyWhereItsValuesAre (0.14s)
./internal/inventory --- PASS: TestTheEndOfTheMoveRefusesALayerChangedSinceItWasRead (0.11s)
./internal/inventory --- PASS: TestACoreCredentialsVaultBoxIsKeptPerMachineAndReplaced (0.17s)
./internal/inventory --- PASS: TestWhatRunsIsTheRegisteredBuildNotANewerOnePutBack (0.20s)
./internal/recordmirror --- PASS: TestNatsAnAssignmentAndARegistrationEachChangeOneKeyAndRaiseOneEvent (3.55s)
./internal/recordmirror --- PASS: TestNatsTheListOfPredefinedKeysKeptChangesTheMirrorsOneKey (1.57s)
the suite failed: each package or shard that failed is said above with its output
--- what failed, picked from the whole of its output (the whole is in the build's log)
--- FAIL: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (0.00s)
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
foundation_manifests_test.go:132: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry (0.00s)
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
genesis_registry_test.go:21: build-agent does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/build-agent/module.json: no such file or directory
--- FAIL: TestRouteProxyKeepsItsPublicAccountDirectory (0.00s)
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: judged against /var/lib/build-agent/workspace/check/mesh-catalog as cloned beside this check
public_issuer_test.go:33: route-proxy does not parse:
open /var/lib/build-agent/workspace/check/mesh-catalog/modules/route-proxy/module.json: no such file or directory
FAIL github.com/novox/mesh-controller/internal/catalogue 22.537s
```
mesh/delivery-group group feat/whole-modules checking: composed check out of date: novox/mesh-controller@0125ccd7d200 was judged against trunk c43772fd94eb, th…
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller, route-proxy, new:modules/build-agent, new:modules/route-proxy)
mesh/repo-check: PASS — its merge-check.sh passed
Delivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
tier 0: mesh-controller, route-proxy
ace: receives route-proxy
novox: receives mesh-controller, route-proxy
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy is judged on its first machine
read by no module's build: Makefile, check-nested-modules.sh, cmd/mesh-controller/check_test.go, cmd/mesh-controller/merge_gate_test.go, internal/catalogue/foundation_manifests_test.go
Run by the build seat on shanks as build-1792255316894231668 (builds --log build-1792255316894231668).
Reviewed by reviewer-1019@shanks: Approved at 0125ccd7 (round 1 plus the extra cycle): moved manifests byte-identical, ADR 0420 §1 refusals in gate and module check, a member's gate sees the move through the clones beside it; gate pass 4 of 4, repo-check pass (issue 1019, ADR 0420). Marked through mesh-delivery.mark-ready (novox/hq issue 913).
ready at 0125ccd7d20054c9f983ad7a40a6761ff27beea8
Reviewed by reviewer-1019@shanks: Approved at 0125ccd7 (round 1 plus the extra cycle): moved manifests byte-identical, ADR 0420 §1 refusals in gate and module check, a member's gate sees the move through the clones beside it; gate pass 4 of 4, repo-check pass (issue 1019, ADR 0420). Marked through mesh-delivery.mark-ready (novox/hq issue 913).
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792258323655869835 (novox/mesh-controller at d5d54498 into ma…
mesh/delivery-group group feat/whole-modules delivering: 1 of 2 delivered; novox/mesh-catalog@795806efa7ad, stopped for a member delivered since, waits for a l…
mesh-controller #372 merged 3 s before the operator's Approve; mesh-delivery put the group back
to proposed and asks no check again (issue opened 19:2x), so a new head asks it.
mesh-delivery: the label mesh/ready is taken off: no "ready at" comment by a listed account follows both the label's last addition and the last push; the head is now 874a91a3c6. Review it and mark that head with mesh-delivery.mark-ready, which writes label and comment in the order the forge counts.
mesh-delivery: the label mesh/ready is taken off: no "ready at" comment by a listed account follows both the label's last addition and the last push; the head is now 874a91a3c64ff4a4dfa6b55b85101622e0e2e550. Review it and mark that head with `mesh-delivery.mark-ready`, which writes label and comment in the order the forge counts.
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller, route-proxy, new:modules/build-agent, new:modules/route-proxy)
mesh/repo-check: PASS — its merge-check.sh passed
Delivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
tier 0: mesh-controller, route-proxy
ace: receives route-proxy
novox: receives mesh-controller, route-proxy
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy is judged on its first machine
read by no module's build: Makefile, check-nested-modules.sh, cmd/mesh-controller/check_test.go, cmd/mesh-controller/merge_gate_test.go, internal/catalogue/foundation_manifests_test.go
Run by the build seat on shanks as build-1792257686051852808 (builds --log build-1792257686051852808).
Reviewed by reviewer-1019@shanks: Approved: same tree as reviewed 0125ccd7 (empty commit to recheck on main 4669a8d1); gate pass 4 of 4 with build-agent and route-proxy moved, repo-check pass (issue 1019, ADR 0420). Marked through mesh-delivery.mark-ready (novox/hq issue 913).
ready at 874a91a3c64ff4a4dfa6b55b85101622e0e2e550
Reviewed by reviewer-1019@shanks: Approved: same tree as reviewed 0125ccd7 (empty commit to recheck on main 4669a8d1); gate pass 4 of 4 with build-agent and route-proxy moved, repo-check pass (issue 1019, ADR 0420). 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.
Design 47 phase II release 2 (playbook 07). One delivery group with mesh-catalog's feat/whole-modules, which removes the two modules from the catalogue; the merge gate judges the pair as a move (ADR 0420 §6, release 1 / issue 1025).
module check(via MESH_CHECK_REPOSITORY) refuse an artifact context naming another repository.Reviewed (round 1 approve; phase 3 extra cycle approve). Opened beside it: 1040, 1041.
Acceptance: after the delivery, the controller registers build-agent and route-proxy from novox/mesh-controller at modules/build-agent and modules/route-proxy on the operator's Approve (ADR 0420 §7), they keep running on the machines that ran them, and the catalogue holds neither.
Delivery
novox/mesh-controller@874a91a3c64f— failed since 2026-10-17T17:35:39ZCovered: covered after its failure: a later walk that contains it was delivered: plan-1792258323655869835 (novox/mesh-controller at
d5d54498into main, done, contains its merged5d54498)Delivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
Group
feat/whole-modules, in order: novox/mesh-controller@874a91a3c6 → novox/mesh-catalog@795806efa7Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
48f5a7d3Judged: head
48f5a7d3a99amerged into trunkc43772fd94eb; read beside it: mesh-catalog2bc4e3c1ce6c, mesh-controller-mainc43772fd94eb, mesh-host6469e8238443, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-catalog#350
c47d94925811merged onto54b3ce503e79(main)mesh/merge-gate: FAIL — 2 problem(s) the change brings; the first: modules/build-agent defines build-agent, which the mesh builds from novox/mesh-catalog: two definitions of one module name (issue 239) (modules: mesh-controller, route-proxy, new:modules/build-agent, new:modules/route-proxy)mesh/repo-check: FAIL — its merge-check.sh failed: --- FAIL: TestTheBuilderRequiresTheRegistryTheNpmSeatDelivers (0.00s); and TestGenesisAssignsTheBuildAgentWithNothingProvidingTheRegistry, TestRouteProxyKeepsItsPublicAccountDirectoryDelivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
Run by the build seat on ace as
build-1792254310998900301(builds --log build-1792254310998900301).Merge check at
0125ccd7Judged: head
0125ccd7d200merged into trunkc43772fd94eb; read beside it: mesh-catalog6ee5068da129, mesh-controller-mainc43772fd94eb, mesh-host6469e8238443, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-catalog#350
c47d94925811merged onto54b3ce503e79(main)mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller, route-proxy, new:modules/build-agent, new:modules/route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
Run by the build seat on shanks as
build-1792255316894231668(builds --log build-1792255316894231668).ready at
0125ccd7d2Reviewed by reviewer-1019@shanks: Approved at
0125ccd7(round 1 plus the extra cycle): moved manifests byte-identical, ADR 0420 §1 refusals in gate and module check, a member's gate sees the move through the clones beside it; gate pass 4 of 4, repo-check pass (issue 1019, ADR 0420). Marked through mesh-delivery.mark-ready (novox/hq issue 913).mesh-delivery: the label mesh/ready is taken off: no "ready at" comment by a listed account follows both the label's last addition and the last push; the head is now
874a91a3c6. Review it and mark that head withmesh-delivery.mark-ready, which writes label and comment in the order the forge counts.Merge check at
874a91a3Judged: head
874a91a3c64fmerged into trunk4669a8d1abe9; read beside it: mesh-catalog25feed2be73a, mesh-controller-main4669a8d1abe9, mesh-host6469e8238443, mesh-tools7412c5b6c9c5Siblings read beside it: novox/mesh-catalog#350
795806efa7admerged onto54b3ce503e79(main)mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller, route-proxy, new:modules/build-agent, new:modules/route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds mesh-controller, route-proxy, new: modules/build-agent, modules/route-proxy → ace, novox; no bus step
Run by the build seat on shanks as
build-1792257686051852808(builds --log build-1792257686051852808).ready at
874a91a3c6Reviewed by reviewer-1019@shanks: Approved: same tree as reviewed
0125ccd7(empty commit to recheck on main4669a8d1); gate pass 4 of 4 with build-agent and route-proxy moved, repo-check pass (issue 1019, ADR 0420). Marked through mesh-delivery.mark-ready (novox/hq issue 913).