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).
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 795806efa7ad is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 795806efa7ad is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
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).mesh-delivery: the operator's Approve of this pull request's merge into main is ended: its head 795806efa7ad is no longer the pull request's head, or the pull request closed. Nothing is merged on it. The operator is asked again once the checks pass at the new head.