Hand a mesh of one its store by loopback until a resolver answers its name (issue 701) #325

Open
mesh-admin wants to merge 3 commits from fix/701-a-name-nothing-answers-is-not-used into main
Contributor

What

artifactStoreAddress answers 127.0.0.1:<port> instead of <node>.internal:<port> in exactly one case: the store's own node asks, it is the only node on the private network, and no node holds the mesh's resolver seat mesh-dns-resolver (meshNamesAnswered, which reads the same holders a machine's resolver file lists). Every other case is unchanged:

  • the store's node before the network: loopback, as before;
  • other nodes: the internal name, as before;
  • a mesh of several nodes: the internal name, as before;
  • any mesh with a resolver: the internal name, as before.

Why

In run-2026-10-14T05-52-08-387Z, genesis placed anchor on the private network at step 21. From then on every reference the mesh composed named the store anchor.internal:5000. Nothing answers that name until a module holds mesh-dns-resolver (ADR 0194), and genesis installs none. So the filter's build at step 22 ran docker run anchor.internal:5000/mesh-tools/build@… and the runtime answered lookup anchor.internal: no such host. The registry trust for anchor.internal:5000 was in place; the name simply had no answer.

Design limit

I chose this on my own; the triage marked the issue as needing a decision. Loopback applies only to a mesh of one: there loopback is the truth for every caller, and it is what genesis already used before the network. I did not pick the other two ways:

  • having genesis write a hosts line for its own name: the hosts file belongs to the hostname module (ADR 0199);
  • naming the store by address everywhere: that would change the references on every node of the live mesh.

The live mesh has mesh-dns-resolver held by dnsmasq on ace and novox, and four nodes on the network, so nothing it composes changes.

Tested

  • TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (store test, listed in testdata/store-tests):
    • a lone anchor on the network with no resolver gets 127.0.0.1:5101, and so does a base handed to the builder;
    • once a resolver holds the seat, it gets anchor.internal:5101.
    • Without the change it fails with anchor.internal:5101.
  • The existing two-node test (TestTheRegistryTrustAndEveryImageFollowThePortTheNodeGaveTheStore) still gets the internal name everywhere.
  • The whole ./cmd/mesh-controller package passes against a throwaway postgres 17 (172 s), and go vet is clean.
  • A lab run of genesis-keeps-its-bus on shanks with this branch: result in a comment.

Fixes issue 701.

## What `artifactStoreAddress` answers `127.0.0.1:<port>` instead of `<node>.internal:<port>` in exactly one case: the store's own node asks, it is the only node on the private network, and no node holds the mesh's resolver seat `mesh-dns-resolver` (`meshNamesAnswered`, which reads the same holders a machine's resolver file lists). Every other case is unchanged: - the store's node before the network: loopback, as before; - other nodes: the internal name, as before; - a mesh of several nodes: the internal name, as before; - any mesh with a resolver: the internal name, as before. ## Why In run-2026-10-14T05-52-08-387Z, genesis placed anchor on the private network at step 21. From then on every reference the mesh composed named the store `anchor.internal:5000`. Nothing answers that name until a module holds `mesh-dns-resolver` (ADR 0194), and genesis installs none. So the filter's build at step 22 ran `docker run anchor.internal:5000/mesh-tools/build@…` and the runtime answered `lookup anchor.internal: no such host`. The registry trust for `anchor.internal:5000` was in place; the name simply had no answer. ## Design limit I chose this on my own; the triage marked the issue as needing a decision. Loopback applies only to a mesh of one: there loopback is the truth for every caller, and it is what genesis already used before the network. I did not pick the other two ways: - having genesis write a hosts line for its own name: the hosts file belongs to the hostname module (ADR 0199); - naming the store by address everywhere: that would change the references on every node of the live mesh. The live mesh has `mesh-dns-resolver` held by dnsmasq on ace and novox, and four nodes on the network, so nothing it composes changes. ## Tested - `TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt` (store test, listed in testdata/store-tests): - a lone anchor on the network with no resolver gets `127.0.0.1:5101`, and so does a base handed to the builder; - once a resolver holds the seat, it gets `anchor.internal:5101`. - Without the change it fails with `anchor.internal:5101`. - The existing two-node test (`TestTheRegistryTrustAndEveryImageFollowThePortTheNodeGaveTheStore`) still gets the internal name everywhere. - The whole `./cmd/mesh-controller` package passes against a throwaway postgres 17 (172 s), and `go vet` is clean. - A lab run of genesis-keeps-its-bus on shanks with this branch: result in a comment. Fixes issue 701.
mesh-admin added 1 commit 2026-10-14 06:32:32 +00:00
Hand a mesh of one its store by loopback until a resolver answers its name (issue 701)
mesh/merge-gate head eb99284890cc merged into trunk 3479a35462b2 — pass: builds mesh-controller → novox; no bus step; every machine composes with the chang…
mesh/repo-check head eb99284890cc merged into trunk 3479a35462b2 — pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
eb99284890
Genesis places the private network at step 21, before anything holds the
mesh's resolver seat, and from then the store was named anchor.internal.
Nothing answered that name, so the filter's build at step 22 could not
pull its base. While the store's node is the only one on the network and
no resolver holds the seat, keep answering it loopback, as before the
network; a mesh of several, or one with a resolver, is answered as before.
Author
Contributor

Delivery novox/mesh-controller@0350b4e22276 — proposed since 2026-10-14T13:22:26Z

Delivery plan — builds mesh-controller → novox; no bus step

  • tier 0: mesh-controller
  • novox: receives mesh-controller

Transitions

  • 2026-10-14 09:07 (new) → proposed (announced): novox/mesh-controller#325's head announced
  • 2026-10-14 09:15 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-14 09:15 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-14 13:22 ready → proposed (trunk moved): out of date: judged against trunk 535c7641ac, the trunk is now c975dbf7b053; judged again on a recheck or when it is merged

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@0350b4e22276` — **proposed** since 2026-10-14T13:22:26Z **Delivery plan** — builds mesh-controller → novox; no bus step - tier 0: mesh-controller - novox: receives mesh-controller **Transitions** - 2026-10-14 09:07 (new) → proposed (announced): novox/mesh-controller#325's head announced - 2026-10-14 09:15 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-14 09:15 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-14 13:22 ready → proposed (trunk moved): out of date: judged against trunk 535c7641ac41, the trunk is now c975dbf7b053; judged again on a recheck or when it is merged The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at eb992848
Judged: head eb99284890cc merged into trunk 3479a35462b2; read beside it: mesh-catalog a44d490d974c, mesh-controller-main 3479a35462b2, mesh-host 1a2677882380, mesh-tools 954e1a53eef9

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller)
  • mesh/repo-check: PASS — its merge-check.sh passed

Delivery plan — builds mesh-controller → novox; no bus step

  • tier 0: mesh-controller
  • novox: receives mesh-controller
  • read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests

Run by the build seat on ace as build-1791959576609542553 (builds --log build-1791959576609542553).

--- the gate: 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-14T05:31:20Z 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-14T05:31:20Z

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 1 module(s) in 1 tier(s): mesh-controller

notes:
  - cmd/mesh-controller/addresses_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.082s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	154.655s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.014s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.019s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.118s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.038s
?   	github.com/novox/mesh-controller/internal/beside	[no test files]
ok  	github.com/novox/mesh-controller/internal/broker	4.697s
ok  	github.com/novox/mesh-controller/internal/builder	35.662s
ok  	github.com/novox/mesh-controller/internal/catalogue	7.363s
ok  	github.com/novox/mesh-controller/internal/conditions	2.719s
ok  	github.com/novox/mesh-controller/internal/envfile	1.115s
ok  	github.com/novox/mesh-controller/internal/facts	1.071s
ok  	github.com/novox/mesh-controller/internal/identity	5.978s
ok  	github.com/novox/mesh-controller/internal/inventory	31.738s
ok  	github.com/novox/mesh-controller/internal/lease	17.726s
ok  	github.com/novox/mesh-controller/internal/licences	5.129s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.064s
ok  	github.com/novox/mesh-controller/internal/link	57.745s
ok  	github.com/novox/mesh-controller/internal/lint	2.231s
ok  	github.com/novox/mesh-controller/internal/outward	1.145s
ok  	github.com/novox/mesh-controller/internal/overlay	1.081s
ok  	github.com/novox/mesh-controller/internal/secrets	1.490s
ok  	github.com/novox/mesh-controller/internal/store	4.933s
ok  	github.com/novox/mesh-controller/internal/testbus	1.246s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
store tests, each run against the store:
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.20s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.20s)
  ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.20s)
  ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.18s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.18s)
  ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.15s)
  ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (1.96s)
  ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.21s)
  ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.11s)
  ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.23s)
  ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.25s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.22s)
  ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.19s)
  ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.19s)
  ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.24s)
  ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.20s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.23s)
  ./cmd/mesh-controller --- PASS: TestReplay237 (0.18s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.18s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.18s)
  ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.18s)
  ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.20s)
  ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.25s)
  ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.25s)
  ./cmd/mesh-controller --- PASS: TestReplay201 (0.14s)
  ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.13s)
  ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.14s)
  ./cmd/mesh-controller --- PASS: TestReplay401 (0.26s)
  ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.21s)
  ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.26s)
  ./cmd/mesh-controller --- PASS: TestReplay340 (0.22s)
  ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.18s)
  ./cmd/mesh-controller --- PASS: TestReplay349 (0.19s)
  ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.16s)
  ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.14s)
  ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.17s)
  ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.07s)
  ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.43s)
  ./cmd/mesh-controller --- PASS: TestReplay164 (0.25s)
  ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.18s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.18s)
  ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.17s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.16s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.47s)
  ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.17s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.15s)
  ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.21s)
  ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.25s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.21s)
  ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.20s)
  ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.17s)
  ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.22s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.16s)
  ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.17s)
  ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.19s)
  ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.20s)
  ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.20s)
  ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.14s)
  ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.14s)
  ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.07s)
  ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.07s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.08s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.07s)
  ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.06s)
  ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.06s)
  ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.06s)
  ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.06s)
  ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.06s)
  ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.07s)
  ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.07s)
  ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.06s)
  ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.07s)
**Merge check** at `eb992848` Judged: head `eb99284890cc` merged into trunk `3479a35462b2`; read beside it: mesh-catalog `a44d490d974c`, mesh-controller-main `3479a35462b2`, mesh-host `1a2677882380`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Delivery plan** — builds mesh-controller → novox; no bus step - tier 0: mesh-controller - novox: receives mesh-controller - read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests Run by the build seat on ace as `build-1791959576609542553` (`builds --log build-1791959576609542553`). ``` --- the gate: 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-14T05:31:20Z 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-14T05:31:20Z 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 1 module(s) in 1 tier(s): mesh-controller notes: - cmd/mesh-controller/addresses_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.082s ok github.com/novox/mesh-controller/cmd/mesh-controller 154.655s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.014s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.019s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s ok github.com/novox/mesh-controller/examples/route-proxy 1.118s ok github.com/novox/mesh-controller/internal/artifacts 1.038s ? github.com/novox/mesh-controller/internal/beside [no test files] ok github.com/novox/mesh-controller/internal/broker 4.697s ok github.com/novox/mesh-controller/internal/builder 35.662s ok github.com/novox/mesh-controller/internal/catalogue 7.363s ok github.com/novox/mesh-controller/internal/conditions 2.719s ok github.com/novox/mesh-controller/internal/envfile 1.115s ok github.com/novox/mesh-controller/internal/facts 1.071s ok github.com/novox/mesh-controller/internal/identity 5.978s ok github.com/novox/mesh-controller/internal/inventory 31.738s ok github.com/novox/mesh-controller/internal/lease 17.726s ok github.com/novox/mesh-controller/internal/licences 5.129s ok github.com/novox/mesh-controller/internal/licences/adapters 1.064s ok github.com/novox/mesh-controller/internal/link 57.745s ok github.com/novox/mesh-controller/internal/lint 2.231s ok github.com/novox/mesh-controller/internal/outward 1.145s ok github.com/novox/mesh-controller/internal/overlay 1.081s ok github.com/novox/mesh-controller/internal/secrets 1.490s ok github.com/novox/mesh-controller/internal/store 4.933s ok github.com/novox/mesh-controller/internal/testbus 1.246s ok github.com/novox/mesh-controller/internal/token 1.015s store tests, each run against the store: ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.20s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.20s) ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.20s) ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.18s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.18s) ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.15s) ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (1.96s) ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.21s) ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.11s) ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.23s) ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.25s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.22s) ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.19s) ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.19s) ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.24s) ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.20s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.23s) ./cmd/mesh-controller --- PASS: TestReplay237 (0.18s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.18s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.18s) ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.18s) ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.20s) ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.25s) ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.25s) ./cmd/mesh-controller --- PASS: TestReplay201 (0.14s) ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.13s) ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.14s) ./cmd/mesh-controller --- PASS: TestReplay401 (0.26s) ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.21s) ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.26s) ./cmd/mesh-controller --- PASS: TestReplay340 (0.22s) ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.18s) ./cmd/mesh-controller --- PASS: TestReplay349 (0.19s) ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.16s) ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.14s) ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.17s) ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.07s) ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.43s) ./cmd/mesh-controller --- PASS: TestReplay164 (0.25s) ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.18s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.18s) ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.17s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.16s) ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.47s) ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.17s) ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.15s) ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.21s) ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.25s) ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.21s) ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.20s) ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.17s) ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.22s) ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.16s) ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.17s) ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.19s) ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.20s) ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.20s) ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.14s) ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.14s) ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.07s) ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.07s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.08s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.07s) ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.06s) ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.06s) ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.06s) ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.06s) ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.06s) ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.07s) ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.07s) ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.06s) ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.07s) ```
jschoubben added 1 commit 2026-10-14 06:58:03 +00:00
Compose a lone node off the network while nothing answers its name (issue 701)
mesh/merge-gate out of date: judged against trunk 04730b54a8f2, the trunk is now 535c7641ac41; judged again on a recheck or when it is merged
mesh/repo-check out of date: judged against trunk 04730b54a8f2, the trunk is now 535c7641ac41; judged again on a recheck or when it is merged
mesh/delivery superseded: a newer head of the same pull request
d53fea31f0
The first change kept the base references on loopback, and the build agent
then failed to publish: its registry is its same-node binding, composed at
the node's own internal name. While a mesh of one has no resolver, compose
that node without its name, so what it binds to on itself is loopback, as
before the network.
Author
Contributor

Merge check at d53fea31
Judged: head d53fea31f0af merged into trunk 3479a35462b2; read beside it: mesh-catalog a44d490d974c, mesh-controller-main 3479a35462b2, mesh-host 1a2677882380, mesh-tools 954e1a53eef9

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller)
  • mesh/repo-check: PASS — its merge-check.sh passed

Delivery plan — builds mesh-controller → novox; no bus step

  • tier 0: mesh-controller
  • novox: receives mesh-controller
  • read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests

Run by the build seat on novox as build-1791961086127996425 (builds --log build-1791961086127996425).

--- the gate: 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-14T05:31:20Z 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-14T05:31:20Z

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 1 module(s) in 1 tier(s): mesh-controller

notes:
  - cmd/mesh-controller/addresses_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.176s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	237.221s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.028s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.031s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.025s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.159s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.069s
?   	github.com/novox/mesh-controller/internal/beside	[no test files]
ok  	github.com/novox/mesh-controller/internal/broker	5.469s
ok  	github.com/novox/mesh-controller/internal/builder	66.213s
ok  	github.com/novox/mesh-controller/internal/catalogue	10.685s
ok  	github.com/novox/mesh-controller/internal/conditions	2.867s
ok  	github.com/novox/mesh-controller/internal/envfile	1.039s
ok  	github.com/novox/mesh-controller/internal/facts	1.033s
ok  	github.com/novox/mesh-controller/internal/identity	9.962s
ok  	github.com/novox/mesh-controller/internal/inventory	58.509s
ok  	github.com/novox/mesh-controller/internal/lease	19.838s
ok  	github.com/novox/mesh-controller/internal/licences	7.134s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.014s
ok  	github.com/novox/mesh-controller/internal/link	70.134s
ok  	github.com/novox/mesh-controller/internal/lint	3.011s
ok  	github.com/novox/mesh-controller/internal/outward	1.079s
ok  	github.com/novox/mesh-controller/internal/overlay	1.031s
ok  	github.com/novox/mesh-controller/internal/secrets	1.551s
ok  	github.com/novox/mesh-controller/internal/store	5.989s
ok  	github.com/novox/mesh-controller/internal/testbus	1.230s
ok  	github.com/novox/mesh-controller/internal/token	1.014s
store tests, each run against the store:
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.25s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.39s)
  ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.25s)
  ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.28s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.56s)
  ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.33s)
  ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.02s)
  ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.27s)
  ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.13s)
  ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.28s)
  ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.41s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.27s)
  ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.23s)
  ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.22s)
  ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.30s)
  ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.23s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.27s)
  ./cmd/mesh-controller --- PASS: TestReplay237 (0.24s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.22s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.22s)
  ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.23s)
  ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.32s)
  ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.47s)
  ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.31s)
  ./cmd/mesh-controller --- PASS: TestReplay201 (0.24s)
  ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.19s)
  ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.20s)
  ./cmd/mesh-controller --- PASS: TestReplay401 (0.40s)
  ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.27s)
  ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.34s)
  ./cmd/mesh-controller --- PASS: TestReplay340 (0.28s)
  ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.33s)
  ./cmd/mesh-controller --- PASS: TestReplay349 (0.22s)
  ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.19s)
  ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s)
  ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.54s)
  ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s)
  ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.72s)
  ./cmd/mesh-controller --- PASS: TestReplay164 (0.34s)
  ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.22s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.23s)
  ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.26s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.21s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.78s)
  ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.24s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.21s)
  ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.26s)
  ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.31s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.30s)
  ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.26s)
  ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.29s)
  ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.28s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.20s)
  ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.20s)
  ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.31s)
  ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.25s)
  ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.25s)
  ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.18s)
  ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.17s)
  ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.09s)
  ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.22s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.11s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.10s)
  ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.07s)
  ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.08s)
  ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.08s)
  ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s)
  ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.08s)
  ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s)
  ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.09s)
  ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.08s)
  ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.12s)
**Merge check** at `d53fea31` Judged: head `d53fea31f0af` merged into trunk `3479a35462b2`; read beside it: mesh-catalog `a44d490d974c`, mesh-controller-main `3479a35462b2`, mesh-host `1a2677882380`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Delivery plan** — builds mesh-controller → novox; no bus step - tier 0: mesh-controller - novox: receives mesh-controller - read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests Run by the build seat on novox as `build-1791961086127996425` (`builds --log build-1791961086127996425`). ``` --- the gate: 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-14T05:31:20Z 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-14T05:31:20Z 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 1 module(s) in 1 tier(s): mesh-controller notes: - cmd/mesh-controller/addresses_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.176s ok github.com/novox/mesh-controller/cmd/mesh-controller 237.221s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.028s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.031s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.025s ok github.com/novox/mesh-controller/examples/route-proxy 1.159s ok github.com/novox/mesh-controller/internal/artifacts 1.069s ? github.com/novox/mesh-controller/internal/beside [no test files] ok github.com/novox/mesh-controller/internal/broker 5.469s ok github.com/novox/mesh-controller/internal/builder 66.213s ok github.com/novox/mesh-controller/internal/catalogue 10.685s ok github.com/novox/mesh-controller/internal/conditions 2.867s ok github.com/novox/mesh-controller/internal/envfile 1.039s ok github.com/novox/mesh-controller/internal/facts 1.033s ok github.com/novox/mesh-controller/internal/identity 9.962s ok github.com/novox/mesh-controller/internal/inventory 58.509s ok github.com/novox/mesh-controller/internal/lease 19.838s ok github.com/novox/mesh-controller/internal/licences 7.134s ok github.com/novox/mesh-controller/internal/licences/adapters 1.014s ok github.com/novox/mesh-controller/internal/link 70.134s ok github.com/novox/mesh-controller/internal/lint 3.011s ok github.com/novox/mesh-controller/internal/outward 1.079s ok github.com/novox/mesh-controller/internal/overlay 1.031s ok github.com/novox/mesh-controller/internal/secrets 1.551s ok github.com/novox/mesh-controller/internal/store 5.989s ok github.com/novox/mesh-controller/internal/testbus 1.230s ok github.com/novox/mesh-controller/internal/token 1.014s store tests, each run against the store: ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.25s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.39s) ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.25s) ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.28s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.56s) ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.33s) ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (2.02s) ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.27s) ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.13s) ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.28s) ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.41s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.27s) ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.23s) ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.22s) ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.30s) ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.23s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.27s) ./cmd/mesh-controller --- PASS: TestReplay237 (0.24s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.22s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.22s) ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.23s) ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.32s) ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.47s) ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.31s) ./cmd/mesh-controller --- PASS: TestReplay201 (0.24s) ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.19s) ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.20s) ./cmd/mesh-controller --- PASS: TestReplay401 (0.40s) ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.27s) ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.34s) ./cmd/mesh-controller --- PASS: TestReplay340 (0.28s) ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.33s) ./cmd/mesh-controller --- PASS: TestReplay349 (0.22s) ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.19s) ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s) ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.54s) ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s) ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.72s) ./cmd/mesh-controller --- PASS: TestReplay164 (0.34s) ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.22s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.23s) ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.26s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.21s) ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.78s) ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.24s) ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.21s) ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.26s) ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.31s) ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.30s) ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.26s) ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.29s) ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.28s) ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.20s) ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.20s) ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.31s) ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.25s) ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.25s) ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.18s) ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.17s) ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.09s) ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.22s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.11s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.10s) ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.07s) ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.08s) ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.08s) ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s) ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.08s) ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s) ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.09s) ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.08s) ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.12s) ```
Author
Contributor

Second commit d53fea31. With only the first commit (eb992848), run-2026-10-14T06-32-20-126Z got past the base pull at step 22. It then failed publishing: cannot reach the registry at anchor.internal:5000 ... lookup anchor.internal on 1.1.1.1:53: no such host. The build agent's MESH_REGISTRY is its same-node binding ${bound:artifact-store:at}, and that binding was composed from the node's own internal name.

The second commit composes a lone node without its own name while no resolver holds mesh-dns-resolver. Same-node bindings then fall back to loopback, exactly as before the network. A node's own name feeds only same-node bindings, ${machine:at}/${machine:address} (used by dnsmasq, which is itself the resolver, and step-ca) and route names. The test now also checks the builder's composed MESH_REGISTRY: 127.0.0.1:5101 without a resolver, anchor.internal:5101 with one. Without plan.go's change it fails.

Lab run-2026-10-14T06-58-04-985Z on shanks, genesis-keeps-its-bus with mesh-controller d53fea31 and everything else on main: the second genesis ran all 24 steps ("The installer finished"; "this machine is a mesh of one node: it builds its own software, holds its graph, sits on its private network, and filters what modules declared"). Bed verdict: 1 passed, "one bus, mesh-broker-nats, on the module's image; 8 stream(s) kept; anchor connected".

Second commit d53fea31. With only the first commit (eb992848), run-2026-10-14T06-32-20-126Z got past the base pull at step 22. It then failed publishing: `cannot reach the registry at anchor.internal:5000 ... lookup anchor.internal on 1.1.1.1:53: no such host`. The build agent's `MESH_REGISTRY` is its same-node binding `${bound:artifact-store:at}`, and that binding was composed from the node's own internal name. The second commit composes a lone node without its own name while no resolver holds `mesh-dns-resolver`. Same-node bindings then fall back to loopback, exactly as before the network. A node's own name feeds only same-node bindings, `${machine:at}`/`${machine:address}` (used by dnsmasq, which is itself the resolver, and step-ca) and route names. The test now also checks the builder's composed `MESH_REGISTRY`: `127.0.0.1:5101` without a resolver, `anchor.internal:5101` with one. Without plan.go's change it fails. Lab run-2026-10-14T06-58-04-985Z on shanks, genesis-keeps-its-bus with mesh-controller d53fea31 and everything else on main: **the second genesis ran all 24 steps** ("The installer finished"; "this machine is a mesh of one node: it builds its own software, holds its graph, sits on its private network, and filters what modules declared"). Bed verdict: 1 passed, "one bus, mesh-broker-nats, on the module's image; 8 stream(s) kept; anchor connected".
Author
Contributor

Merge check at d53fea31
Judged: head d53fea31f0af merged into trunk 04730b54a8f2; read beside it: mesh-catalog a44d490d974c, mesh-controller-main 04730b54a8f2, mesh-host 1a2677882380, mesh-tools 954e1a53eef9

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller)
  • mesh/repo-check: PASS — its merge-check.sh passed

Delivery plan — builds mesh-controller → novox; no bus step

  • tier 0: mesh-controller
  • novox: receives mesh-controller
  • read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests

Run by the build seat on shanks as build-1791962605814281759 (builds --log build-1791962605814281759).

--- the gate: 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-14T07:16:52Z 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-14T07:16:52Z

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
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.088s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	183.635s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.018s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.059s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.024s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.240s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.087s
?   	github.com/novox/mesh-controller/internal/beside	[no test files]
ok  	github.com/novox/mesh-controller/internal/broker	4.549s
ok  	github.com/novox/mesh-controller/internal/builder	43.158s
ok  	github.com/novox/mesh-controller/internal/catalogue	8.723s
ok  	github.com/novox/mesh-controller/internal/conditions	2.714s
ok  	github.com/novox/mesh-controller/internal/envfile	1.069s
ok  	github.com/novox/mesh-controller/internal/facts	1.065s
ok  	github.com/novox/mesh-controller/internal/identity	5.161s
ok  	github.com/novox/mesh-controller/internal/inventory	36.263s
ok  	github.com/novox/mesh-controller/internal/lease	17.730s
ok  	github.com/novox/mesh-controller/internal/licences	4.240s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.046s
ok  	github.com/novox/mesh-controller/internal/link	59.537s
ok  	github.com/novox/mesh-controller/internal/lint	2.650s
ok  	github.com/novox/mesh-controller/internal/outward	1.093s
ok  	github.com/novox/mesh-controller/internal/overlay	1.079s
ok  	github.com/novox/mesh-controller/internal/secrets	1.555s
ok  	github.com/novox/mesh-controller/internal/store	3.510s
ok  	github.com/novox/mesh-controller/internal/testbus	1.261s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
store tests, each run against the store:
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.22s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.23s)
  ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.23s)
  ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.21s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.20s)
  ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.18s)
  ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (1.97s)
  ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.24s)
  ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.13s)
  ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.26s)
  ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.35s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.26s)
  ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.21s)
  ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.21s)
  ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.28s)
  ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.22s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.26s)
  ./cmd/mesh-controller --- PASS: TestReplay237 (0.20s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.20s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.20s)
  ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.21s)
  ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.24s)
  ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.30s)
  ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.30s)
  ./cmd/mesh-controller --- PASS: TestReplay201 (0.16s)
  ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.16s)
  ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.16s)
  ./cmd/mesh-controller --- PASS: TestReplay401 (0.29s)
  ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.23s)
  ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.29s)
  ./cmd/mesh-controller --- PASS: TestReplay340 (0.25s)
  ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.20s)
  ./cmd/mesh-controller --- PASS: TestReplay349 (0.21s)
  ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.19s)
  ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.16s)
  ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.19s)
  ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.08s)
  ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.46s)
  ./cmd/mesh-controller --- PASS: TestReplay164 (0.28s)
  ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.20s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.21s)
  ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.19s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.19s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.55s)
  ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.18s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.18s)
  ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.24s)
  ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.30s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.25s)
  ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.32s)
  ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.19s)
  ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.25s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.19s)
  ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.19s)
  ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.23s)
  ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.22s)
  ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.23s)
  ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.17s)
  ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.16s)
  ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.08s)
  ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.09s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.09s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.08s)
  ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.07s)
  ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.07s)
  ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.07s)
  ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s)
  ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.07s)
  ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s)
  ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.09s)
  ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.08s)
  ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.08s)
**Merge check** at `d53fea31` Judged: head `d53fea31f0af` merged into trunk `04730b54a8f2`; read beside it: mesh-catalog `a44d490d974c`, mesh-controller-main `04730b54a8f2`, mesh-host `1a2677882380`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Delivery plan** — builds mesh-controller → novox; no bus step - tier 0: mesh-controller - novox: receives mesh-controller - read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests Run by the build seat on shanks as `build-1791962605814281759` (`builds --log build-1791962605814281759`). ``` --- the gate: 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-14T07:16:52Z 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-14T07:16:52Z 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 --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.088s ok github.com/novox/mesh-controller/cmd/mesh-controller 183.635s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.018s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.059s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.024s ok github.com/novox/mesh-controller/examples/route-proxy 1.240s ok github.com/novox/mesh-controller/internal/artifacts 1.087s ? github.com/novox/mesh-controller/internal/beside [no test files] ok github.com/novox/mesh-controller/internal/broker 4.549s ok github.com/novox/mesh-controller/internal/builder 43.158s ok github.com/novox/mesh-controller/internal/catalogue 8.723s ok github.com/novox/mesh-controller/internal/conditions 2.714s ok github.com/novox/mesh-controller/internal/envfile 1.069s ok github.com/novox/mesh-controller/internal/facts 1.065s ok github.com/novox/mesh-controller/internal/identity 5.161s ok github.com/novox/mesh-controller/internal/inventory 36.263s ok github.com/novox/mesh-controller/internal/lease 17.730s ok github.com/novox/mesh-controller/internal/licences 4.240s ok github.com/novox/mesh-controller/internal/licences/adapters 1.046s ok github.com/novox/mesh-controller/internal/link 59.537s ok github.com/novox/mesh-controller/internal/lint 2.650s ok github.com/novox/mesh-controller/internal/outward 1.093s ok github.com/novox/mesh-controller/internal/overlay 1.079s ok github.com/novox/mesh-controller/internal/secrets 1.555s ok github.com/novox/mesh-controller/internal/store 3.510s ok github.com/novox/mesh-controller/internal/testbus 1.261s ok github.com/novox/mesh-controller/internal/token 1.015s store tests, each run against the store: ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.22s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.23s) ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.23s) ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.21s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.20s) ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.18s) ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (1.97s) ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.24s) ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.13s) ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.26s) ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.35s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.26s) ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.21s) ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.21s) ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.28s) ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.22s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.26s) ./cmd/mesh-controller --- PASS: TestReplay237 (0.20s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.20s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.20s) ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.21s) ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.24s) ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.30s) ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.30s) ./cmd/mesh-controller --- PASS: TestReplay201 (0.16s) ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.16s) ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.16s) ./cmd/mesh-controller --- PASS: TestReplay401 (0.29s) ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.23s) ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.29s) ./cmd/mesh-controller --- PASS: TestReplay340 (0.25s) ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.20s) ./cmd/mesh-controller --- PASS: TestReplay349 (0.21s) ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.19s) ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.16s) ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.19s) ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.08s) ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.46s) ./cmd/mesh-controller --- PASS: TestReplay164 (0.28s) ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.20s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.21s) ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.19s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.19s) ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.55s) ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.18s) ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.18s) ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.24s) ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.30s) ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.25s) ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.32s) ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.19s) ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.25s) ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.19s) ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.19s) ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.23s) ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.22s) ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.23s) ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.17s) ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.16s) ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.08s) ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.09s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.09s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.08s) ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.07s) ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.07s) ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.07s) ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s) ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.07s) ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s) ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.09s) ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.08s) ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.08s) ```
mesh-admin left a comment
Author
Contributor

Verdict: changes needed at d53fea31f0 (one small one): the fix is right for genesis, but aLoneNameNothingAnswers is not exact. A degraded read of the live mesh can make it true for g14 or shanks.

Independent review for issue 701 (a lone node is handed a name nothing answers).

Checks at this head, fresh, judged against trunk 04730b54a8 at 07:29: mesh/merge-gate success ("PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller)"), mesh/repo-check success ("PASS — its merge-check.sh passed"; the store tests include "--- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.35s)"), mesh/delivery success ("ready: waits for its merge"). No mesh/delivery-group status. The gate composing all four machines unchanged shows the live mesh, read as it is now, does not take the path.

  1. A resolver briefly down cannot trigger it. The holders come from inv.Holdings, a record, not from health, so ace and novox stay holders while their resolver restarts.
  2. But both halves of the test come from one reading, onTheNetwork. The test is len(onNetwork) == 1, and replicatedHolders keeps a holder only when its address is in that same onTheNetwork list. onTheNetwork silently drops a machine whose inv.Assigned read errs (if err != nil || len(assigned) == 0 { continue }), and drops, saying it on stderr only, a machine whose modules do not resolve against the catalogue (issue 188's case). If ace, novox and one other drop out of one reading, the one left sees itself alone, and no holder survives the address filter. ace and novox can never be that one, since each holds a resolver itself. But g14 or shanks would then be planned with At = "": composed as off the network for that send, its same-node bindings by loopback. It is a degraded state already, but this adds a wrong composition pushed during it, not just a missing name. Today's code would still hand that node its own name.
  3. Change asked: make the test about the mesh, not about one reading of the network. For example, the inventory knows exactly one node (inv.Nodes) and no holding of mesh-dns-resolver is recorded at all (before the address filter). Genesis still meets both; a mesh of four never does. A test with two nodes, one of them failing to resolve, would pin it.
  4. The test fails on main, by reading, not by a run here. It compiles against main's network.go and plan.go (go vet clean). Main returns overlay.InternalName(node) whenever the store is on the network, so its first assertion ("127.0.0.1:5101") fails. I could not run it on g14: it needs the store (MESH_TEST_POSTGRES), and here it skips. The repo-check run above passed it at this head.

The lab run named (run-2026-10-14T06-58-04-985Z on shanks, all 24 genesis steps) I did not re-read; I take it as reported.

Reviewed by an independent reviewer on g14.

Verdict: changes needed at d53fea31f0af (one small one): the fix is right for genesis, but aLoneNameNothingAnswers is not exact. A degraded read of the live mesh can make it true for g14 or shanks. Independent review for issue 701 (a lone node is handed a name nothing answers). Checks at this head, fresh, judged against trunk 04730b54a8f2 at 07:29: mesh/merge-gate success ("PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller)"), mesh/repo-check success ("PASS — its merge-check.sh passed"; the store tests include "--- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.35s)"), mesh/delivery success ("ready: waits for its merge"). No mesh/delivery-group status. The gate composing all four machines unchanged shows the live mesh, read as it is now, does not take the path. 1. A resolver briefly down cannot trigger it. The holders come from inv.Holdings, a record, not from health, so ace and novox stay holders while their resolver restarts. 2. But both halves of the test come from one reading, onTheNetwork. The test is len(onNetwork) == 1, and replicatedHolders keeps a holder only when its address is in that same onTheNetwork list. onTheNetwork silently drops a machine whose inv.Assigned read errs (`if err != nil || len(assigned) == 0 { continue }`), and drops, saying it on stderr only, a machine whose modules do not resolve against the catalogue (issue 188's case). If ace, novox and one other drop out of one reading, the one left sees itself alone, and no holder survives the address filter. ace and novox can never be that one, since each holds a resolver itself. But g14 or shanks would then be planned with At = "": composed as off the network for that send, its same-node bindings by loopback. It is a degraded state already, but this adds a wrong composition pushed during it, not just a missing name. Today's code would still hand that node its own name. 3. Change asked: make the test about the mesh, not about one reading of the network. For example, the inventory knows exactly one node (inv.Nodes) and no holding of mesh-dns-resolver is recorded at all (before the address filter). Genesis still meets both; a mesh of four never does. A test with two nodes, one of them failing to resolve, would pin it. 4. The test fails on main, by reading, not by a run here. It compiles against main's network.go and plan.go (go vet clean). Main returns overlay.InternalName(node) whenever the store is on the network, so its first assertion ("127.0.0.1:5101") fails. I could not run it on g14: it needs the store (MESH_TEST_POSTGRES), and here it skips. The repo-check run above passed it at this head. The lab run named (run-2026-10-14T06-58-04-985Z on shanks, all 24 genesis steps) I did not re-read; I take it as reported. Reviewed by an independent reviewer on g14.
jschoubben added 1 commit 2026-10-14 09:06:57 +00:00
Judge a mesh of one by the inventory, not by who reads as on the network (issue 701, review 275)
mesh/merge-gate out of date: judged against trunk 535c7641ac41, the trunk is now c975dbf7b053; judged again on a recheck or when it is merged
mesh/repo-check out of date: judged against trunk 535c7641ac41, the trunk is now c975dbf7b053; judged again on a recheck or when it is merged
mesh/delivery checking
0350b4e222
The network reading leaves out a machine whose assignments cannot be read
or whose modules do not resolve, so a bad reading could make a mesh of
several look like one and send its machines to loopback. Count the nodes
the inventory knows, and every recorded holding and assigned claimant of
the resolver seat, before any address filter.
Author
Contributor

Merge check at 0350b4e2
Judged: head 0350b4e22276 merged into trunk 535c7641ac41; read beside it: mesh-catalog a44d490d974c, mesh-controller-main 535c7641ac41, mesh-host 1a2677882380, mesh-tools 954e1a53eef9

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller)
  • mesh/repo-check: PASS — its merge-check.sh passed

Delivery plan — builds mesh-controller → novox; no bus step

  • tier 0: mesh-controller
  • novox: receives mesh-controller
  • read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests

Run by the build seat on novox as build-1791968846335814482 (builds --log build-1791968846335814482).

--- the gate: 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-14T09:07:05Z 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-14T09:07:05Z

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 1 module(s) in 1 tier(s): mesh-controller

notes:
  - cmd/mesh-controller/addresses_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.220s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	225.739s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.011s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.024s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.018s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.126s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.055s
?   	github.com/novox/mesh-controller/internal/beside	[no test files]
ok  	github.com/novox/mesh-controller/internal/broker	11.335s
ok  	github.com/novox/mesh-controller/internal/builder	61.202s
ok  	github.com/novox/mesh-controller/internal/catalogue	8.446s
ok  	github.com/novox/mesh-controller/internal/conditions	2.704s
ok  	github.com/novox/mesh-controller/internal/envfile	1.032s
ok  	github.com/novox/mesh-controller/internal/facts	1.033s
ok  	github.com/novox/mesh-controller/internal/identity	15.468s
ok  	github.com/novox/mesh-controller/internal/inventory	50.209s
ok  	github.com/novox/mesh-controller/internal/lease	18.195s
ok  	github.com/novox/mesh-controller/internal/licences	14.142s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.014s
ok  	github.com/novox/mesh-controller/internal/link	67.350s
ok  	github.com/novox/mesh-controller/internal/lint	2.353s
ok  	github.com/novox/mesh-controller/internal/outward	1.043s
ok  	github.com/novox/mesh-controller/internal/overlay	1.029s
ok  	github.com/novox/mesh-controller/internal/secrets	1.430s
ok  	github.com/novox/mesh-controller/internal/store	7.612s
ok  	github.com/novox/mesh-controller/internal/testbus	1.394s
ok  	github.com/novox/mesh-controller/internal/token	1.025s
store tests, each run against the store:
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.23s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.25s)
  ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.23s)
  ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.25s)
  ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.21s)
  ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.20s)
  ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (1.98s)
  ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.27s)
  ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.13s)
  ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.32s)
  ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.47s)
  ./cmd/mesh-controller --- PASS: TestAMeshOfTwoWithAnUnresolvableMachineKeepsItsNames (0.32s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.28s)
  ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.23s)
  ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.22s)
  ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.29s)
  ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.24s)
  ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.27s)
  ./cmd/mesh-controller --- PASS: TestReplay237 (0.22s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.44s)
  ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.29s)
  ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.29s)
  ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.27s)
  ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.38s)
  ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.30s)
  ./cmd/mesh-controller --- PASS: TestReplay201 (0.16s)
  ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.17s)
  ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.17s)
  ./cmd/mesh-controller --- PASS: TestReplay401 (0.59s)
  ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.27s)
  ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.41s)
  ./cmd/mesh-controller --- PASS: TestReplay340 (0.29s)
  ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.22s)
  ./cmd/mesh-controller --- PASS: TestReplay349 (0.25s)
  ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.21s)
  ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s)
  ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.20s)
  ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s)
  ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.72s)
  ./cmd/mesh-controller --- PASS: TestReplay164 (0.34s)
  ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.22s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.23s)
  ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.21s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.21s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.69s)
  ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.20s)
  ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.20s)
  ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.27s)
  ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.32s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.29s)
  ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.25s)
  ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.22s)
  ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.29s)
  ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.22s)
  ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.21s)
  ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.36s)
  ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.24s)
  ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.25s)
  ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.25s)
  ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.22s)
  ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.09s)
  ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.10s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.10s)
  ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.09s)
  ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.07s)
  ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.08s)
  ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.08s)
  ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s)
  ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.08s)
  ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s)
  ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.09s)
  ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.09s)
  ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.10s)
**Merge check** at `0350b4e2` Judged: head `0350b4e22276` merged into trunk `535c7641ac41`; read beside it: mesh-catalog `a44d490d974c`, mesh-controller-main `535c7641ac41`, mesh-host `1a2677882380`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-controller) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Delivery plan** — builds mesh-controller → novox; no bus step - tier 0: mesh-controller - novox: receives mesh-controller - read by no module's build: cmd/mesh-controller/addresses_test.go, testdata/store-tests Run by the build seat on novox as `build-1791968846335814482` (`builds --log build-1791968846335814482`). ``` --- the gate: 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-14T09:07:05Z 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-14T09:07:05Z 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 1 module(s) in 1 tier(s): mesh-controller notes: - cmd/mesh-controller/addresses_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.220s ok github.com/novox/mesh-controller/cmd/mesh-controller 225.739s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.011s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.024s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.018s ok github.com/novox/mesh-controller/examples/route-proxy 1.126s ok github.com/novox/mesh-controller/internal/artifacts 1.055s ? github.com/novox/mesh-controller/internal/beside [no test files] ok github.com/novox/mesh-controller/internal/broker 11.335s ok github.com/novox/mesh-controller/internal/builder 61.202s ok github.com/novox/mesh-controller/internal/catalogue 8.446s ok github.com/novox/mesh-controller/internal/conditions 2.704s ok github.com/novox/mesh-controller/internal/envfile 1.032s ok github.com/novox/mesh-controller/internal/facts 1.033s ok github.com/novox/mesh-controller/internal/identity 15.468s ok github.com/novox/mesh-controller/internal/inventory 50.209s ok github.com/novox/mesh-controller/internal/lease 18.195s ok github.com/novox/mesh-controller/internal/licences 14.142s ok github.com/novox/mesh-controller/internal/licences/adapters 1.014s ok github.com/novox/mesh-controller/internal/link 67.350s ok github.com/novox/mesh-controller/internal/lint 2.353s ok github.com/novox/mesh-controller/internal/outward 1.043s ok github.com/novox/mesh-controller/internal/overlay 1.029s ok github.com/novox/mesh-controller/internal/secrets 1.430s ok github.com/novox/mesh-controller/internal/store 7.612s ok github.com/novox/mesh-controller/internal/testbus 1.394s ok github.com/novox/mesh-controller/internal/token 1.025s store tests, each run against the store: ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeWalksTheOthersAgain (0.23s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeEndsTheMergesThatContainIt (0.25s) ./cmd/mesh-controller --- PASS: TestAStopWalksTheOthersAgainInTheOpenBatch (0.23s) ./cmd/mesh-controller --- PASS: TestAStopNamesWhatStaysOnTheMachinesAndWhatStillCarriesIt (0.25s) ./cmd/mesh-controller --- PASS: TestAStopWithoutAMergeLeavesItOutOfABatch (0.21s) ./cmd/mesh-controller --- PASS: TestSavingPlansAndMovingMergesIsOneAct (0.20s) ./cmd/mesh-controller --- PASS: TestAPlanFollowedFromTheStoreAnswersWhenItMoves (1.98s) ./cmd/mesh-controller --- PASS: TestNodeShowAndStatusReadTheLastSendFromTheStore (0.27s) ./cmd/mesh-controller --- PASS: TestTheConditionsVerbReadsTheLooksTheBucketNoLongerHolds (0.13s) ./cmd/mesh-controller --- PASS: TestAWalkLetGoAndStoppedByVerbsIsSaidStartedAndEnded (0.32s) ./cmd/mesh-controller --- PASS: TestAMeshOfOneIsHandedNoNameUntilAResolverAnswersIt (0.47s) ./cmd/mesh-controller --- PASS: TestAMeshOfTwoWithAnUnresolvableMachineKeepsItsNames (0.32s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedOrClosedByAPersonIsSaidEndedStopped (0.28s) ./cmd/mesh-controller --- PASS: TestAWalkRetriedByAPersonIsSaidStartedAgain (0.23s) ./cmd/mesh-controller --- PASS: TestABacklogReleasedByAPersonIsSaidStarted (0.22s) ./cmd/mesh-controller --- PASS: TestAWalkEndedByCancelOrClearIsSaidEnded (0.29s) ./cmd/mesh-controller --- PASS: TestAWalkRestartedByARebuildIsSaidStarted (0.24s) ./cmd/mesh-controller --- PASS: TestAWalkStoppedByHandAndRetriedEndsFailedWhenItFailsAgain (0.27s) ./cmd/mesh-controller --- PASS: TestReplay237 (0.22s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeUnresolvedSaysSoOnceInItsAnswer (0.44s) ./cmd/mesh-controller --- PASS: TestAnUnassignThatLeavesItsNodeResolvedSaysNothingOfIt (0.29s) ./cmd/mesh-controller --- PASS: TestAnAssignThatLeavesItsNodeUnresolvedSaysOnlyThePlansRefusal (0.29s) ./cmd/mesh-controller --- PASS: TestADirectoryOwnersKeyIsRefusedThroughAVerb (0.27s) ./cmd/mesh-controller --- PASS: TestTheSendMakesNoValueForAnOutsideSecretNobodyGave (0.38s) ./cmd/mesh-controller --- PASS: TestAQuestionComposesWithoutAnOutsideSecretNobodyGave (0.30s) ./cmd/mesh-controller --- PASS: TestReplay201 (0.16s) ./cmd/mesh-controller --- PASS: TestARollbackWhoseSendWasRefusedIsCompletedByTheNextSend (0.17s) ./cmd/mesh-controller --- PASS: TestAGateJudgesTheOtherMovesBesideAKeptCore (0.17s) ./cmd/mesh-controller --- PASS: TestReplay401 (0.59s) ./cmd/mesh-controller --- PASS: TestReplay201ThePlansSend (0.27s) ./cmd/mesh-controller --- PASS: TestPlanAndNodeListAnOptionalRequirementLeftUnbound (0.41s) ./cmd/mesh-controller --- PASS: TestReplay340 (0.29s) ./cmd/mesh-controller --- PASS: TestOnlyATrustedFilesNamedKeyIsRefusedThroughAVerb (0.22s) ./cmd/mesh-controller --- PASS: TestReplay349 (0.25s) ./cmd/mesh-controller --- PASS: TestReplay348AFaultFromBeforeTheSendFailsNoGate (0.21s) ./cmd/mesh-controller --- PASS: TestReplay239AModuleNameIsNotTakenOverByAnotherRepository (0.17s) ./cmd/mesh-controller --- PASS: TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns (0.20s) ./cmd/mesh-controller --- PASS: TestReplay614ANewSDKPlansTheToolchainAndThenItsBundles (0.09s) ./cmd/mesh-controller --- PASS: TestOneAcceptForAProviderIsPlacedForEveryConsumer (0.72s) ./cmd/mesh-controller --- PASS: TestReplay164 (0.34s) ./cmd/mesh-controller --- PASS: TestAnApprovedLayerOpensTheWalkThatSendsIt (0.22s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsOneMachineAtATimeEachJudged (0.23s) ./cmd/mesh-controller --- PASS: TestAFailedSettingsWalkStopsAndHoldsNothingBack (0.21s) ./cmd/mesh-controller --- PASS: TestASettingsWalkSendsTheLayerAloneEveryBuildKept (0.21s) ./cmd/mesh-controller --- PASS: TestASettingsWalkStopsBeforeADataMoveAndPassesOverAMachineAway (0.69s) ./cmd/mesh-controller --- PASS: TestACrossingSendSupersedesASettingsGate (0.20s) ./cmd/mesh-controller --- PASS: TestASettingsWalkFailsOnARefusalThatCannotClear (0.20s) ./cmd/mesh-controller --- PASS: TestAProviderElsewhereServesItsOwnComposedName (0.27s) ./cmd/mesh-controller --- PASS: TestAReusedCheckBuildIsRegisteredByItsDigestAndGatedAsABuiltOne (0.32s) ./cmd/mesh-controller --- PASS: TestAReleaseSendsTheRestAtOnceAfterTheFirstPasses (0.29s) ./cmd/mesh-controller --- PASS: TestARestMachineThatFailsIsPutBackAloneAndTheOthersAreJudgedOn (0.25s) ./cmd/mesh-controller --- PASS: TestAWalkTakesOverTheReadingsOfAGateJudgingTheSameBuildThere (0.22s) ./cmd/mesh-controller --- PASS: TestAFirstSendMadeAndNotKeptIsNotSentAgain (0.29s) ./cmd/mesh-controller --- PASS: TestAReleaseSendKeptAndMadeIsNotMadeAgain (0.22s) ./cmd/mesh-controller --- PASS: TestAFirstMachineThatFailsStillStopsTheWalk (0.21s) ./cmd/mesh-controller --- PASS: TestTheControlNodeIsSentLastInAStep (0.36s) ./cmd/mesh-controller --- PASS: TestARestMachineSilentPastItsBoundIsLeftAndSaid (0.24s) ./cmd/mesh-controller --- PASS: TestANoMoveTierWaitsForNoNewReport (0.25s) ./cmd/mesh-controller --- PASS: TestOneProviderDownAndThreeConsumersFailingAreOneCondition (0.25s) ./cmd/mesh-controller --- PASS: TestAConsumerFailingBesideAHealthyProviderIsItsOwn (0.22s) ./internal/inventory --- PASS: TestTheLastSendSaysWhatTheMachineAnswered (0.09s) ./internal/inventory --- PASS: TestAReportIsTheLastSendsAnswerOnlyWhenItIsAboutThatSend (0.10s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedToEveryHolderOnceAndNotAgain (0.10s) ./internal/inventory --- PASS: TestAnIssuedValueIsSealedAgainAfterAKeyChangeOrAnAcceptance (0.09s) ./internal/inventory --- PASS: TestAConditionsLooksAreKeptBesideTheBucket (0.07s) ./internal/inventory --- PASS: TestAPlanIdHoldingAQuoteIsReadAsAPlainId (0.08s) ./internal/inventory --- PASS: TestAWalksStartIsKeptAndARefusedSaveLeavesItUnsaid (0.08s) ./internal/inventory --- PASS: TestAWalksRestIsReadFromEachMachinesOwnSend (0.08s) ./internal/inventory --- PASS: TestAStoredBuildWithASilentMergeableFileIsStillReadAndComposed (0.08s) ./internal/inventory --- PASS: TestACredentialIssuedOutsideIsNeverMade (0.09s) ./internal/inventory --- PASS: TestOneAcceptForAProviderIsSealedToEveryConsumer (0.09s) ./internal/inventory --- PASS: TestASharedOwnSecretIssuedOutsideIsNeverMade (0.09s) ./internal/inventory --- PASS: TestAReportOfABusyContainerIsKeptAndReadBack (0.10s) ```
Some checks are pending
mesh/merge-gate out of date: judged against trunk 535c7641ac41, the trunk is now c975dbf7b053; judged again on a recheck or when it is merged
Required
Details
mesh/repo-check out of date: judged against trunk 535c7641ac41, the trunk is now c975dbf7b053; judged again on a recheck or when it is merged
Required
Details
mesh/delivery checking
Some required checks are missing.
You are not authorized to merge this pull request.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/701-a-name-nothing-answers-is-not-used:fix/701-a-name-nothing-answers-is-not-used
git checkout fix/701-a-name-nothing-answers-is-not-used
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#325