Issue 867, found live: with both members passing their own checks beside each other (mesh-controller#346 at 02:09, mesh-host#114 at 02:38), the group 57-config-and-provisioning's composed check (build-1792111097169130557) failed: "[release feat/57-config-and-provisioning, judged by its controller fcdecb4361] … controller does not build with this change's validator". ADR 0239 §14 (in force): the group's own controller judges when a member moves it; ADR 0358 §2 changes the judge only for a pull request into a release branch.
internal/builder judgeFromTheGroup: when the check is a group's and a member is in mesh-controller, that member's merge is the judge, with the mesh-host member's validator when there is one; isolated judge build, kept by the content of every member's head, trunk and the judging trees. Repositories that are not members keep ADR 0358 §3's reads.
Statuses and report say "judged by the group's controller ".
Also changes, on purpose, a trunk group whose composed check's primary is mesh-host's: now judged by the group's controller instead of the running one (ADR 0239 §14).
Tests: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController and …JudgedWithTheValidator… (the live shape, Judge=validator), both fail on main a07dd78c with the live message and pass here.
Review: independent Opus review, APPROVE at this content (local 1252efeb, tree e4f5156f equal). Non-blocking: groupDir matches the repository name, not the owner.
Issue 867, found live: with both members passing their own checks beside each other (mesh-controller#346 at 02:09, mesh-host#114 at 02:38), the group 57-config-and-provisioning's composed check (build-1792111097169130557) failed: "[release feat/57-config-and-provisioning, judged by its controller fcdecb436117] … controller does not build with this change's validator". ADR 0239 §14 (in force): the group's own controller judges when a member moves it; ADR 0358 §2 changes the judge only for a pull request into a release branch.
- internal/builder judgeFromTheGroup: when the check is a group's and a member is in mesh-controller, that member's merge is the judge, with the mesh-host member's validator when there is one; isolated judge build, kept by the content of every member's head, trunk and the judging trees. Repositories that are not members keep ADR 0358 §3's reads.
- Statuses and report say "judged by the group's controller <sha>".
- Also changes, on purpose, a trunk group whose composed check's primary is mesh-host's: now judged by the group's controller instead of the running one (ADR 0239 §14).
- Tests: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController and …JudgedWithTheValidator… (the live shape, Judge=validator), both fail on main a07dd78c with the live message and pass here.
Review: independent Opus review, APPROVE at this content (local 1252efeb, tree e4f5156f equal). Non-blocking: groupDir matches the repository name, not the owner.
mesh/merge-gate head 151faa10a13b merged into trunk a07dd78c3e90 — pass: builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step; every …
The composed check of mesh-controller#346 and mesh-host#114 into feat/57-config-and-provisioning was judged by the release branch's controller, which cannot build the node-engine member's validator, so the group could never pass. ADR 0239 §14 has the group's own controller judge when a member moves it; ADR 0358 §2 changes the judge only for a pull request into a release branch. A group member in mesh-controller now judges, with the mesh-host member's validator, built in the isolated judge environment and kept by content; the statuses say the group's controller judged.
Co-Authored-By: Claude <noreply@anthropic.com>
Deliverynovox/mesh-controller@151faa10a13b — delivered since 2026-10-16T01:07:52Z
Delivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
tier 0: mesh-controller
tier 1: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives mesh-controller, build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
Machines
mesh-controller on every machine running it: sent
build-agent on every machine running it: sent
Transitions
2026-10-16 00:59 (new) → proposed (announced): novox/mesh-controller#352's head announced
2026-10-16 01:03 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-16 01:03 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-16 01:04 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-16 01:04 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-16 01:07 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@151faa10a13b` — **delivered** since 2026-10-16T01:07:52Z
**Delivery plan** — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives mesh-controller, build-agent
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
**Machines**
- mesh-controller on every machine running it: sent
- build-agent on every machine running it: sent
**Transitions**
- 2026-10-16 00:59 (new) → proposed (announced): novox/mesh-controller#352's head announced
- 2026-10-16 01:03 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-16 01:03 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-16 01:04 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-16 01:04 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-16 01:07 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Merge check at 151faa10
Judged: head 151faa10a13b merged into trunk a07dd78c3e90; read beside it: mesh-catalog 0fdacb98399d, mesh-controller-main a07dd78c3e90, mesh-host 198fd34ec497, mesh-tools 6b3e15042fee
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller)
mesh/repo-check: PASS — its merge-check.sh passed
Delivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
tier 0: mesh-controller
tier 1: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives mesh-controller, build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
read by no module's build: cmd/mesh-controller/replay867_test.go, testdata/store-tests
Run by the build seat on ace as build-1792112380772612921 (builds --log build-1792112380772612921).
--- the gate: build-agent, mesh-controller
mesh-controller: ok, 60 tool(s); WARNING: merge-window ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
files asking for a setting without saying whether it is trusted: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T00:43:58Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-16T00:43:58Z
modules the change moves:
- mesh-controller (changed)
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 2 module(s) in 2 tier(s): build-agent, mesh-controller
notes:
- cmd/mesh-controller/replay867_test.go and testdata/store-tests read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.216s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.061s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.070s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.072s
ok github.com/novox/mesh-controller/examples/route-proxy 1.174s
ok github.com/novox/mesh-controller/internal/artifacts 1.105s
? github.com/novox/mesh-controller/internal/beside [no test files]
ok github.com/novox/mesh-controller/internal/broker 7.673s
ok github.com/novox/mesh-controller/internal/catalogue 16.092s
ok github.com/novox/mesh-controller/internal/conditions 3.046s
ok github.com/novox/mesh-controller/internal/envfile 1.074s
ok github.com/novox/mesh-controller/internal/facts 1.054s
ok github.com/novox/mesh-controller/internal/identity 6.990s
ok github.com/novox/mesh-controller/internal/lease 10.287s
ok github.com/novox/mesh-controller/internal/licences 5.294s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.065s
ok github.com/novox/mesh-controller/internal/lint 3.087s
ok github.com/novox/mesh-controller/internal/outward 1.071s
ok github.com/novox/mesh-controller/internal/overlay 1.060s
ok github.com/novox/mesh-controller/internal/secrets 1.611s
ok github.com/novox/mesh-controller/internal/store 3.747s
ok github.com/novox/mesh-controller/internal/testbus 1.274s
ok github.com/novox/mesh-controller/internal/token 1.072s
ok github.com/novox/mesh-controller/cmd/mesh-controller 36s (shard 1 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 46s (shard 2 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 44s (shard 3 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 38s (shard 4 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 40s (shard 5 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 33s (shard 6 of 8: 119 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 42s (shard 7 of 8: 119 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 37s (shard 8 of 8: 119 tests)
ok github.com/novox/mesh-controller/internal/inventory 17s (shard 1 of 4: 69 tests)
ok github.com/novox/mesh-controller/internal/inventory 16s (shard 2 of 4: 69 tests)
ok github.com/novox/mesh-controller/internal/inventory 17s (shard 3 of 4: 69 tests)
ok github.com/novox/mesh-controller/internal/inventory 17s (shard 4 of 4: 68 tests)
ok github.com/novox/mesh-controller/internal/builder 19s (shard 1 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/builder 17s (shard 2 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/builder 33s (shard 3 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/builder 52s (shard 4 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/link 16s (shard 1 of 4: 47 tests)
ok github.com/novox/mesh-controller/internal/link 21s (shard 2 of 4: 46 tests)
ok github.com/novox/mesh-controller/internal/link 19s (shard 3 of 4: 46 tests)
ok github.com/novox/mesh-controller/internal/link 15s (shard 4 of 4: 46 tests)
store tests, each run against the store:
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.44s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.70s)
./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.52s)
./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.43s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.45s)
./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.39s)
./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.21s)
./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.45s)
./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.19s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.29s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.31s)
./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.23s)
./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.28s)
./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.35s)
./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.28s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.30s)
./cmd/mesh-controller --- PASS: TestReplay237 (0.29s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.42s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.56s)
./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.75s)
./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.67s)
./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.61s)
./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.70s)
./cmd/mesh-controller --- PASS: TestReplay201 (0.30s)
./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.36s)
./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.38s)
./cmd/mesh-controller --- PASS: TestReplay401 (0.44s)
./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.44s)
./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.37s)
./cmd/mesh-controller --- PASS: TestReplay340 (0.31s)
./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.38s)
./cmd/mesh-controller --- PASS: TestReplay349 (0.43s)
./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.37s)
./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.24s)
./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.60s)
./cmd/mesh-controller --- PASS: TestAWalkWhoseEveryBuildCameOutTheSameIsDone (0.32s)
./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s)
./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.97s)
./cmd/mesh-controller --- PASS: TestReplay164 (0.42s)
./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.40s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.51s)
./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.31s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.28s)
./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.81s)
./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.37s)
./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.19s)
./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (1.03s)
./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.56s)
./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.31s)
./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.28s)
./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.24s)
./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (1.10s)
./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.55s)
./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.95s)
./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (1.31s)
./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.55s)
./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.58s)
./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.57s)
./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.46s)
./cmd/mesh-controller --- PASS: TestARecordedModulesBundleOnlyMoveRollsOutInItsWalk (0.58s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatRecreatesAContainerWaits (1.23s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatTouchesDataOrAProviderWaits (0.80s)
./cmd/mesh-controller --- PASS: TestAPersonsRecordAndTheBusHoldEveryMove (0.54s)
./cmd/mesh-controller --- PASS: TestARecordedMoveThatCannotBeJudgedWaits (0.68s)
./cmd/mesh-controller --- PASS: TestReplay867 (6.30s)
./cmd/mesh-controller --- PASS: TestReplay867Recheck (5.78s)
./cmd/mesh-controller --- PASS: TestTheRecheckVerbAsksMeshDeliveryOnABusOfItsOwn (0.40s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController (4.78s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionJudgedWithTheValidatorIntoAReleaseBranchIsJudgedByItsOwnController (4.95s)
./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.08s)
./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.10s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.10s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.09s)
./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.06s)
./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.09s)
./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.12s)
./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s)
./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.07s)
./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s)
./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.10s)
./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.10s)
./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.40s)
./internal/inventory --- PASS: TestWhatRunsIsTheRegisteredBuildNotANewerOnePutBack (0.17s)
**Merge check** at `151faa10`
Judged: head `151faa10a13b` merged into trunk `a07dd78c3e90`; read beside it: mesh-catalog `0fdacb98399d`, mesh-controller-main `a07dd78c3e90`, mesh-host `198fd34ec497`, mesh-tools `6b3e15042fee`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Delivery plan** — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives mesh-controller, build-agent
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
- read by no module's build: cmd/mesh-controller/replay867_test.go, testdata/store-tests
Run by the build seat on ace as `build-1792112380772612921` (`builds --log build-1792112380772612921`).
```
--- the gate: build-agent, mesh-controller
mesh-controller: ok, 60 tool(s); WARNING: merge-window ask(s) for a setting and do(es) not say whether it is trusted, so it counts as trusted: set at the terminal alone; say "trusted" false where nothing trusts it (novox/hq issue 339); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
files asking for a setting without saying whether it is trusted: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-16T00:43:58Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-16T00:43:58Z
modules the change moves:
- mesh-controller (changed)
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 2 module(s) in 2 tier(s): build-agent, mesh-controller
notes:
- cmd/mesh-controller/replay867_test.go and testdata/store-tests read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.216s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.061s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.070s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.072s
ok github.com/novox/mesh-controller/examples/route-proxy 1.174s
ok github.com/novox/mesh-controller/internal/artifacts 1.105s
? github.com/novox/mesh-controller/internal/beside [no test files]
ok github.com/novox/mesh-controller/internal/broker 7.673s
ok github.com/novox/mesh-controller/internal/catalogue 16.092s
ok github.com/novox/mesh-controller/internal/conditions 3.046s
ok github.com/novox/mesh-controller/internal/envfile 1.074s
ok github.com/novox/mesh-controller/internal/facts 1.054s
ok github.com/novox/mesh-controller/internal/identity 6.990s
ok github.com/novox/mesh-controller/internal/lease 10.287s
ok github.com/novox/mesh-controller/internal/licences 5.294s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.065s
ok github.com/novox/mesh-controller/internal/lint 3.087s
ok github.com/novox/mesh-controller/internal/outward 1.071s
ok github.com/novox/mesh-controller/internal/overlay 1.060s
ok github.com/novox/mesh-controller/internal/secrets 1.611s
ok github.com/novox/mesh-controller/internal/store 3.747s
ok github.com/novox/mesh-controller/internal/testbus 1.274s
ok github.com/novox/mesh-controller/internal/token 1.072s
ok github.com/novox/mesh-controller/cmd/mesh-controller 36s (shard 1 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 46s (shard 2 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 44s (shard 3 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 38s (shard 4 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 40s (shard 5 of 8: 120 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 33s (shard 6 of 8: 119 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 42s (shard 7 of 8: 119 tests)
ok github.com/novox/mesh-controller/cmd/mesh-controller 37s (shard 8 of 8: 119 tests)
ok github.com/novox/mesh-controller/internal/inventory 17s (shard 1 of 4: 69 tests)
ok github.com/novox/mesh-controller/internal/inventory 16s (shard 2 of 4: 69 tests)
ok github.com/novox/mesh-controller/internal/inventory 17s (shard 3 of 4: 69 tests)
ok github.com/novox/mesh-controller/internal/inventory 17s (shard 4 of 4: 68 tests)
ok github.com/novox/mesh-controller/internal/builder 19s (shard 1 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/builder 17s (shard 2 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/builder 33s (shard 3 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/builder 52s (shard 4 of 4: 53 tests)
ok github.com/novox/mesh-controller/internal/link 16s (shard 1 of 4: 47 tests)
ok github.com/novox/mesh-controller/internal/link 21s (shard 2 of 4: 46 tests)
ok github.com/novox/mesh-controller/internal/link 19s (shard 3 of 4: 46 tests)
ok github.com/novox/mesh-controller/internal/link 15s (shard 4 of 4: 46 tests)
store tests, each run against the store:
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.44s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.70s)
./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.52s)
./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.43s)
./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.45s)
./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.39s)
./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.21s)
./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.45s)
./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.19s)
./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.29s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.31s)
./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.23s)
./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.28s)
./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.35s)
./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.28s)
./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.30s)
./cmd/mesh-controller --- PASS: TestReplay237 (0.29s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.42s)
./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.56s)
./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.75s)
./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.67s)
./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.61s)
./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.70s)
./cmd/mesh-controller --- PASS: TestReplay201 (0.30s)
./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.36s)
./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.38s)
./cmd/mesh-controller --- PASS: TestReplay401 (0.44s)
./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.44s)
./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.37s)
./cmd/mesh-controller --- PASS: TestReplay340 (0.31s)
./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.38s)
./cmd/mesh-controller --- PASS: TestReplay349 (0.43s)
./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.37s)
./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.24s)
./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.60s)
./cmd/mesh-controller --- PASS: TestAWalkWhoseEveryBuildCameOutTheSameIsDone (0.32s)
./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s)
./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.97s)
./cmd/mesh-controller --- PASS: TestReplay164 (0.42s)
./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.40s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.51s)
./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.31s)
./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.28s)
./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.81s)
./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.37s)
./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.19s)
./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (1.03s)
./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.56s)
./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.31s)
./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.28s)
./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.24s)
./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (1.10s)
./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.55s)
./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.95s)
./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (1.31s)
./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.55s)
./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.58s)
./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.57s)
./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.46s)
./cmd/mesh-controller --- PASS: TestARecordedModulesBundleOnlyMoveRollsOutInItsWalk (0.58s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatRecreatesAContainerWaits (1.23s)
./cmd/mesh-controller --- PASS: TestARecordedModulesMoveThatTouchesDataOrAProviderWaits (0.80s)
./cmd/mesh-controller --- PASS: TestAPersonsRecordAndTheBusHoldEveryMove (0.54s)
./cmd/mesh-controller --- PASS: TestARecordedMoveThatCannotBeJudgedWaits (0.68s)
./cmd/mesh-controller --- PASS: TestReplay867 (6.30s)
./cmd/mesh-controller --- PASS: TestReplay867Recheck (5.78s)
./cmd/mesh-controller --- PASS: TestTheRecheckVerbAsksMeshDeliveryOnABusOfItsOwn (0.40s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionIntoAReleaseBranchIsJudgedByItsOwnController (4.78s)
./cmd/mesh-controller --- PASS: TestAGroupsCompositionJudgedWithTheValidatorIntoAReleaseBranchIsJudgedByItsOwnController (4.95s)
./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.08s)
./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.10s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.10s)
./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.09s)
./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.06s)
./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.09s)
./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.12s)
./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s)
./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.07s)
./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s)
./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.10s)
./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.10s)
./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.40s)
./internal/inventory --- PASS: TestWhatRunsIsTheRegisteredBuildNotANewerOnePutBack (0.17s)
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 867, found live: with both members passing their own checks beside each other (mesh-controller#346 at 02:09, mesh-host#114 at 02:38), the group 57-config-and-provisioning's composed check (build-1792111097169130557) failed: "[release feat/57-config-and-provisioning, judged by its controller
fcdecb4361] … controller does not build with this change's validator". ADR 0239 §14 (in force): the group's own controller judges when a member moves it; ADR 0358 §2 changes the judge only for a pull request into a release branch.a07dd78cwith the live message and pass here.Review: independent Opus review, APPROVE at this content (local 1252efeb, tree
e4f5156fequal). Non-blocking: groupDir matches the repository name, not the owner.ready at
151faa10a1Delivery
novox/mesh-controller@151faa10a13b— delivered since 2026-10-16T01:07:52ZDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
151faa10Judged: head
151faa10a13bmerged into trunka07dd78c3e90; read beside it: mesh-catalog0fdacb98399d, mesh-controller-maina07dd78c3e90, mesh-host198fd34ec497, mesh-tools6b3e15042feemesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1792112380772612921(builds --log build-1792112380772612921).