Report the networks the outward links are on, for the local network (issue 154, ADR 0340) #107

Merged
mesh-admin merged 1 commits from fix/154-local-network into main 2026-10-13 13:07:08 +00:00
Contributor

after: none

Issue 154; decision: novox/hq ADR 0340 (§7). Companion: mesh-controller (after this).

What it does

  • internal/outward: Networks(links, addressesOf) gives every network on the links facing outside (the same Links the filter is written around), as link and masked network (192.168.1.0/24), sorted, no repeats. A link gone since it was listed has none; a link whose addresses cannot be read fails the whole, so the fact is said unknown rather than partial.
  • internal/profile: Machine.Networks (networks on the wire), among issue 160's facts. Every network is said, public and link-local included: which count is the controller's judgement, shown with why. None on an outward link is said unknown with why (networks), never an empty list.
  • cmd/mesh-host: the networks are part of the reconcile's fingerprint, so a changed network (a laptop on another network, a moved lease) is said unasked at the next reconcile; the same networks are not news.

Tests (fail on main: outward.Networks, Machine.Networks and attachedNetworksOf do not exist there)

  • internal/outward networks_test.go: each outward link says its networks, masked, the bridge not asked; an unreadable link is not a partial account; a gone link has none.
  • internal/profile machine_test.go: the networks are among the facts; none is said unknown with why; an unreadable source is unknown (the issue 160 acceptance test now covers networks).
  • cmd/mesh-host local_network_test.go: a changed network is said unasked, the same one is not.

gofmt, go vet ./... and go test ./... pass (without -race, by the coordinator's load limit on g14).

Fixes issue 154 (with the mesh-controller PR).

after: none Issue 154; decision: novox/hq ADR 0340 (§7). Companion: mesh-controller (after this). **What it does** - `internal/outward`: `Networks(links, addressesOf)` gives every network on the links facing outside (the same `Links` the filter is written around), as link and masked network (`192.168.1.0/24`), sorted, no repeats. A link gone since it was listed has none; a link whose addresses cannot be read fails the whole, so the fact is said unknown rather than partial. - `internal/profile`: `Machine.Networks` (`networks` on the wire), among issue 160's facts. Every network is said, public and link-local included: which count is the controller's judgement, shown with why. None on an outward link is said unknown with why (`networks`), never an empty list. - `cmd/mesh-host`: the networks are part of the reconcile's fingerprint, so a changed network (a laptop on another network, a moved lease) is said unasked at the next reconcile; the same networks are not news. **Tests (fail on main: `outward.Networks`, `Machine.Networks` and `attachedNetworksOf` do not exist there)** - internal/outward networks_test.go: each outward link says its networks, masked, the bridge not asked; an unreadable link is not a partial account; a gone link has none. - internal/profile machine_test.go: the networks are among the facts; none is said unknown with why; an unreadable source is unknown (the issue 160 acceptance test now covers `networks`). - cmd/mesh-host local_network_test.go: a changed network is said unasked, the same one is not. gofmt, `go vet ./...` and `go test ./...` pass (without -race, by the coordinator's load limit on g14). Fixes issue 154 (with the mesh-controller PR).
mesh-admin added 1 commit 2026-10-13 09:20:33 +00:00
Report the networks the outward links are on, for the local network (issue 154, ADR 0340)
mesh/merge-gate head cb7b71dcc568 merged into trunk 12bc6a56a38a — pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes wi…
mesh/repo-check head cb7b71dcc568 merged into trunk 12bc6a56a38a — pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/154-local-network delivered: every member is delivered
cb7b71dcc5
A port reached from local-network is admitted from the private networks the machine is attached to, and only the machine can say which those are. Every network on a link facing outside is said among its facts, and a change is said at the next reconcile.
Author
Contributor

Delivery novox/mesh-host@cb7b71dcc568 — delivered since 2026-10-13T13:26:37Z

Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-host
  • ace: receives mesh-host
  • g14: receives mesh-host
  • novox: receives mesh-host
  • shanks: receives mesh-host
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-host is judged on its first machine

Group fix/154-local-network, in order: novox/mesh-host@cb7b71dcc5 → novox/mesh-controller@4cc8588afb

Machines

  • mesh-host on ace: passed — judged with build-agent: healthy 3 times over 2m40s
  • build-agent on ace: passed — healthy 3 times over 2m40s
  • mesh-host on g14: judging — carried by release-1791896974742967198
  • mesh-host on shanks: judging — carried by release-1791896974742967198
  • mesh-host on novox: judging — carried by release-1791896974742967198
  • mesh-controller on novox: passed — healthy 3 times over 3m32s
  • build-agent on the rest running it: sent
  • mesh-host on the rest running it: sent
  • mesh-controller on the rest running it: sent

Transitions

  • 2026-10-13 09:20 (new) → proposed (announced): novox/mesh-host#107's head announced
  • 2026-10-13 09:23 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-13 09:23 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-13 09:23 ready → proposed (trunk moved): out of date: judged against trunk f0d39b4a4a, the trunk is now 130c5d98a601; judged again on a recheck or when it is merged
  • 2026-10-13 12:58 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-13 12:58 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-13 13:09 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-13 13:09 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
  • 2026-10-13 13:26 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-host@cb7b71dcc568` — **delivered** since 2026-10-13T13:26:37Z **Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step - tier 0: mesh-host - ace: receives mesh-host - g14: receives mesh-host - novox: receives mesh-host - shanks: receives mesh-host - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-host is judged on its first machine **Group** `fix/154-local-network`, in order: novox/mesh-host@cb7b71dcc568 → novox/mesh-controller@4cc8588afb87 - novox/mesh-host@cb7b71dcc568 before novox/mesh-controller@4cc8588afb87: declared, over built by - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-host on ace: passed — judged with build-agent: healthy 3 times over 2m40s - build-agent on ace: passed — healthy 3 times over 2m40s - mesh-host on g14: judging — carried by release-1791896974742967198 - mesh-host on shanks: judging — carried by release-1791896974742967198 - mesh-host on novox: judging — carried by release-1791896974742967198 - mesh-controller on novox: passed — healthy 3 times over 3m32s - build-agent on the rest running it: sent - mesh-host on the rest running it: sent - mesh-controller on the rest running it: sent **Transitions** - 2026-10-13 09:20 (new) → proposed (announced): novox/mesh-host#107's head announced - 2026-10-13 09:23 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-13 09:23 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-13 09:23 ready → proposed (trunk moved): out of date: judged against trunk f0d39b4a4ab0, the trunk is now 130c5d98a601; judged again on a recheck or when it is merged - 2026-10-13 12:58 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-13 12:58 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-13 13:09 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-13 13:09 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit - 2026-10-13 13:26 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at cb7b71dc
Judged: head cb7b71dcc568 merged into trunk f0d39b4a4ab0; read beside it: mesh-catalog 45d01e77c26d, mesh-controller 1826b68a22b5, mesh-controller-main 1826b68a22b5, mesh-tools 954e1a53eef9

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

Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-host
  • ace: receives mesh-host
  • g14: receives mesh-host
  • novox: receives mesh-host
  • shanks: receives mesh-host
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-host is judged on its first machine
  • read by no module's build: cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go, internal/profile/machine_test.go

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

--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T09:19:10Z 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-13T09:19:10Z

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-host

notes:
  - cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go and internal/profile/machine_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-host/cmd/mesh-bootstrap	1.011s
ok  	github.com/novox/mesh-host/cmd/mesh-host	5.815s
ok  	github.com/novox/mesh-host/examples	1.030s
ok  	github.com/novox/mesh-host/internal/accounts	1.579s
ok  	github.com/novox/mesh-host/internal/apply	4.862s
ok  	github.com/novox/mesh-host/internal/bootstrap	4.441s
ok  	github.com/novox/mesh-host/internal/bundle	1.051s
ok  	github.com/novox/mesh-host/internal/declaration	1.097s
ok  	github.com/novox/mesh-host/internal/firewall	1.856s
ok  	github.com/novox/mesh-host/internal/identity	1.134s
ok  	github.com/novox/mesh-host/internal/image	1.040s
ok  	github.com/novox/mesh-host/internal/inventory	1.075s
ok  	github.com/novox/mesh-host/internal/link	10.516s
ok  	github.com/novox/mesh-host/internal/liveness	2.148s
ok  	github.com/novox/mesh-host/internal/meshcli	1.579s
ok  	github.com/novox/mesh-host/internal/network	1.069s
ok  	github.com/novox/mesh-host/internal/outward	1.055s
ok  	github.com/novox/mesh-host/internal/profile	1.652s
ok  	github.com/novox/mesh-host/internal/reachable	1.055s
ok  	github.com/novox/mesh-host/internal/store	1.239s
ok  	github.com/novox/mesh-host/internal/system	1.052s
ok  	github.com/novox/mesh-host/internal/tunnel	1.058s
ok  	github.com/novox/mesh-host/internal/units	1.047s
ok  	github.com/novox/mesh-host/internal/upgrade	1.177s
ok  	github.com/novox/mesh-host/internal/witness	4.515s
ok  	github.com/novox/mesh-host/packaging	1.052s
?   	github.com/novox/mesh-host/rootsearch	[no test files]
ok  	github.com/novox/mesh-host/validate	1.009s

Out of date when it landed: out of date: judged against trunk f0d39b4a4a, the trunk is now 130c5d98a601; judged again on a recheck or when it is merged

**Merge check** at `cb7b71dc` Judged: head `cb7b71dcc568` merged into trunk `f0d39b4a4ab0`; read beside it: mesh-catalog `45d01e77c26d`, mesh-controller `1826b68a22b5`, mesh-controller-main `1826b68a22b5`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step - tier 0: mesh-host - ace: receives mesh-host - g14: receives mesh-host - novox: receives mesh-host - shanks: receives mesh-host - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-host is judged on its first machine - read by no module's build: cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go, internal/profile/machine_test.go Run by the build seat on shanks as `build-1791883285642980044` (`builds --log build-1791883285642980044`). ``` --- the gate: mesh-host mesh-host: ok long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 0 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T09:19:10Z 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-13T09:19:10Z 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-host notes: - cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go and internal/profile/machine_test.go read by no module's build, and rebuild nothing (issue 280) --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-host/cmd/mesh-bootstrap 1.011s ok github.com/novox/mesh-host/cmd/mesh-host 5.815s ok github.com/novox/mesh-host/examples 1.030s ok github.com/novox/mesh-host/internal/accounts 1.579s ok github.com/novox/mesh-host/internal/apply 4.862s ok github.com/novox/mesh-host/internal/bootstrap 4.441s ok github.com/novox/mesh-host/internal/bundle 1.051s ok github.com/novox/mesh-host/internal/declaration 1.097s ok github.com/novox/mesh-host/internal/firewall 1.856s ok github.com/novox/mesh-host/internal/identity 1.134s ok github.com/novox/mesh-host/internal/image 1.040s ok github.com/novox/mesh-host/internal/inventory 1.075s ok github.com/novox/mesh-host/internal/link 10.516s ok github.com/novox/mesh-host/internal/liveness 2.148s ok github.com/novox/mesh-host/internal/meshcli 1.579s ok github.com/novox/mesh-host/internal/network 1.069s ok github.com/novox/mesh-host/internal/outward 1.055s ok github.com/novox/mesh-host/internal/profile 1.652s ok github.com/novox/mesh-host/internal/reachable 1.055s ok github.com/novox/mesh-host/internal/store 1.239s ok github.com/novox/mesh-host/internal/system 1.052s ok github.com/novox/mesh-host/internal/tunnel 1.058s ok github.com/novox/mesh-host/internal/units 1.047s ok github.com/novox/mesh-host/internal/upgrade 1.177s ok github.com/novox/mesh-host/internal/witness 4.515s ok github.com/novox/mesh-host/packaging 1.052s ? github.com/novox/mesh-host/rootsearch [no test files] ok github.com/novox/mesh-host/validate 1.009s ``` **Out of date when it landed**: out of date: judged against trunk f0d39b4a4ab0, the trunk is now 130c5d98a601; judged again on a recheck or when it is merged
mesh-admin left a comment
Author
Contributor

Verdict: approve at cb7b71dcc5

This PR builds only ADR 0340 §7 (the node-engine reports its subnets), and it does that correctly and completely.

internal/outward.Networks reports every network on each outward link — public, link-local and loopback included — without judging any of them, matching §7's own words ("Every one is said, and the machine judges none of them"); judging is left entirely to the controller, as ADR 0340 §2 assigns it there. The container bridge (docker0) is never asked, because it is not in the outward link list. An unreadable link fails the whole read with an error, so the fact is said unknown rather than reported as a partial account (TestAnUnreadableLinkIsNotAPartialAccount); a link gone since the route table was read yields no networks for that link alone, without failing the rest (TestALinkGoneSinceItWasListedHasNoNetworks).

internal/profile.DescribeMachine distinguishes three states on the Networks fact: no Sources.Networks function given, Networks() erroring, and Networks() returning an empty list because no outward link carries an address — all three are said unknown (with a reason), never reported as an empty array that a reader could misread as "attached to nothing." This is the state the controller-side PR (mesh-controller #299) needs to tell "older node-engine / never reported" apart from "reported, has none," and the two sides agree on the shape of the fact.

cmd/mesh-host's adoption fingerprint folds the reported networks in, so a changed network (a laptop joining another network, a moved DHCP lease) is said unasked at the next reconcile, and the same networks again are not news (TestAChangedNetworkIsSaidUnasked) — satisfying §7's "after every apply and on its own daily schedule, and again whenever its uplink's addresses change."

Checked and confirmed:

  • None of outward.Networks, Machine.Networks or attachedNetworksOf exist on main (checked by git show main:internal/outward/networks.go, which fails, and by grep), so the new tests cannot even compile there, let alone pass — they fail on main as the PR body claims.
  • go vet ./... is clean.
  • go test ./... passes every package.
  • go test -race on the touched packages (internal/outward, internal/profile, cmd/mesh-host) passes.
  • ./merge-check.sh exits 0 (bus-dependent tests skipped for lack of a nats-server in this toolchain, which the script itself says, not a failure).

No changes requested.

Verdict: approve at cb7b71dcc56808dc382c20295356c06870a98c3c This PR builds only ADR 0340 §7 (the node-engine reports its subnets), and it does that correctly and completely. internal/outward.Networks reports every network on each outward link — public, link-local and loopback included — without judging any of them, matching §7's own words ("Every one is said, and the machine judges none of them"); judging is left entirely to the controller, as ADR 0340 §2 assigns it there. The container bridge (docker0) is never asked, because it is not in the outward link list. An unreadable link fails the whole read with an error, so the fact is said unknown rather than reported as a partial account (TestAnUnreadableLinkIsNotAPartialAccount); a link gone since the route table was read yields no networks for that link alone, without failing the rest (TestALinkGoneSinceItWasListedHasNoNetworks). internal/profile.DescribeMachine distinguishes three states on the Networks fact: no Sources.Networks function given, Networks() erroring, and Networks() returning an empty list because no outward link carries an address — all three are said unknown (with a reason), never reported as an empty array that a reader could misread as "attached to nothing." This is the state the controller-side PR (mesh-controller #299) needs to tell "older node-engine / never reported" apart from "reported, has none," and the two sides agree on the shape of the fact. cmd/mesh-host's adoption fingerprint folds the reported networks in, so a changed network (a laptop joining another network, a moved DHCP lease) is said unasked at the next reconcile, and the same networks again are not news (TestAChangedNetworkIsSaidUnasked) — satisfying §7's "after every apply and on its own daily schedule, and again whenever its uplink's addresses change." Checked and confirmed: - None of outward.Networks, Machine.Networks or attachedNetworksOf exist on main (checked by `git show main:internal/outward/networks.go`, which fails, and by grep), so the new tests cannot even compile there, let alone pass — they fail on main as the PR body claims. - `go vet ./...` is clean. - `go test ./...` passes every package. - `go test -race` on the touched packages (internal/outward, internal/profile, cmd/mesh-host) passes. - `./merge-check.sh` exits 0 (bus-dependent tests skipped for lack of a nats-server in this toolchain, which the script itself says, not a failure). No changes requested.
Author
Contributor

Merge check at cb7b71dc
Judged: head cb7b71dcc568 merged into trunk 12bc6a56a38a; read beside it: mesh-catalog 0d723484a84a, mesh-controller 0a1dc5f93fcb, mesh-controller-main 0a1dc5f93fcb, mesh-tools 954e1a53eef9

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

Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-host
  • ace: receives mesh-host
  • g14: receives mesh-host
  • novox: receives mesh-host
  • shanks: receives mesh-host
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-host is judged on its first machine
  • read by no module's build: cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go, internal/profile/machine_test.go

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

--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T12:48:29Z 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-13T12:48:29Z

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-host

notes:
  - cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go and internal/profile/machine_test.go read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-host/cmd/mesh-bootstrap	1.015s
ok  	github.com/novox/mesh-host/cmd/mesh-host	5.733s
ok  	github.com/novox/mesh-host/examples	1.032s
ok  	github.com/novox/mesh-host/internal/accounts	1.518s
ok  	github.com/novox/mesh-host/internal/apply	4.637s
ok  	github.com/novox/mesh-host/internal/bootstrap	4.553s
ok  	github.com/novox/mesh-host/internal/bundle	1.037s
ok  	github.com/novox/mesh-host/internal/declaration	1.093s
ok  	github.com/novox/mesh-host/internal/firewall	1.859s
ok  	github.com/novox/mesh-host/internal/identity	1.128s
ok  	github.com/novox/mesh-host/internal/image	1.044s
ok  	github.com/novox/mesh-host/internal/inventory	1.068s
ok  	github.com/novox/mesh-host/internal/link	10.494s
ok  	github.com/novox/mesh-host/internal/liveness	2.129s
ok  	github.com/novox/mesh-host/internal/meshcli	1.575s
ok  	github.com/novox/mesh-host/internal/network	1.064s
ok  	github.com/novox/mesh-host/internal/outward	1.047s
ok  	github.com/novox/mesh-host/internal/profile	1.646s
ok  	github.com/novox/mesh-host/internal/reachable	1.057s
ok  	github.com/novox/mesh-host/internal/store	1.240s
ok  	github.com/novox/mesh-host/internal/system	1.057s
ok  	github.com/novox/mesh-host/internal/tunnel	1.063s
ok  	github.com/novox/mesh-host/internal/units	1.028s
ok  	github.com/novox/mesh-host/internal/upgrade	1.167s
ok  	github.com/novox/mesh-host/internal/witness	4.366s
ok  	github.com/novox/mesh-host/packaging	1.029s
?   	github.com/novox/mesh-host/rootsearch	[no test files]
ok  	github.com/novox/mesh-host/validate	1.009s
**Merge check** at `cb7b71dc` Judged: head `cb7b71dcc568` merged into trunk `12bc6a56a38a`; read beside it: mesh-catalog `0d723484a84a`, mesh-controller `0a1dc5f93fcb`, mesh-controller-main `0a1dc5f93fcb`, mesh-tools `954e1a53eef9` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step - tier 0: mesh-host - ace: receives mesh-host - g14: receives mesh-host - novox: receives mesh-host - shanks: receives mesh-host - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-host is judged on its first machine - read by no module's build: cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go, internal/profile/machine_test.go Run by the build seat on shanks as `build-1791896191583389448` (`builds --log build-1791896191583389448`). ``` --- the gate: mesh-host mesh-host: ok long-running resources without health: 0 files asking for a setting without saying whether it is trusted: 0 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 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T12:48:29Z 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-13T12:48:29Z 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-host notes: - cmd/mesh-host/local_network_test.go, internal/outward/networks_test.go and internal/profile/machine_test.go read by no module's build, and rebuild nothing (issue 280) --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-host/cmd/mesh-bootstrap 1.015s ok github.com/novox/mesh-host/cmd/mesh-host 5.733s ok github.com/novox/mesh-host/examples 1.032s ok github.com/novox/mesh-host/internal/accounts 1.518s ok github.com/novox/mesh-host/internal/apply 4.637s ok github.com/novox/mesh-host/internal/bootstrap 4.553s ok github.com/novox/mesh-host/internal/bundle 1.037s ok github.com/novox/mesh-host/internal/declaration 1.093s ok github.com/novox/mesh-host/internal/firewall 1.859s ok github.com/novox/mesh-host/internal/identity 1.128s ok github.com/novox/mesh-host/internal/image 1.044s ok github.com/novox/mesh-host/internal/inventory 1.068s ok github.com/novox/mesh-host/internal/link 10.494s ok github.com/novox/mesh-host/internal/liveness 2.129s ok github.com/novox/mesh-host/internal/meshcli 1.575s ok github.com/novox/mesh-host/internal/network 1.064s ok github.com/novox/mesh-host/internal/outward 1.047s ok github.com/novox/mesh-host/internal/profile 1.646s ok github.com/novox/mesh-host/internal/reachable 1.057s ok github.com/novox/mesh-host/internal/store 1.240s ok github.com/novox/mesh-host/internal/system 1.057s ok github.com/novox/mesh-host/internal/tunnel 1.063s ok github.com/novox/mesh-host/internal/units 1.028s ok github.com/novox/mesh-host/internal/upgrade 1.167s ok github.com/novox/mesh-host/internal/witness 4.366s ok github.com/novox/mesh-host/packaging 1.029s ? github.com/novox/mesh-host/rootsearch [no test files] ok github.com/novox/mesh-host/validate 1.009s ```
mesh-admin merged commit 0e92ef3d1b into main 2026-10-13 13:07:08 +00:00
mesh-admin deleted branch fix/154-local-network 2026-10-13 13:07:08 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#107