Write each module's have and the node's own facts beside the report (issue 1132); the check reads build-agent from the controller (issue 1142) #118

Merged
mesh-tools merged 3 commits from feat/delivery-have into main 2026-10-18 18:36:14 +00:00
Member

Design 47, release 1-2, cut B: one delivery group with mesh-controller's feat/delivery-have.

  • Issue 1132 (ADR 0429 §4, §7 release 1): the node-engine reads each resource's module and the declaration's builds when the controller sends them (only to a node whose report says reads_modules), groups the apply's outcome per module, and writes node-engine_have <node>.<module> (phase, health, build, detail) and <node>.node (windows, busy, strays, filters, profile), only when a value differs, by compare-and-set, on the node's own credential; the bucket is bound once per pass under the queue's timeout and a refused write is logged and never holds the report. Nothing of today's report is deleted; the alive message stays (release 2).
  • Issue 1142 (its tests half): the bootstrap tests read build-agent's manifest from mesh-controller beside the check, where it lives since issue 1019; mesh-host's main failed its own check without it. The genesis half is issue 1152.

Tests: 1132/AC1-AC8 (AC8 integration), 1142/AC1. Try build-1792344579242916461 passed in 59 s.
Delivery: the node-engine to ace, g14, novox and shanks, with the controller of this group.

Reviewed-by: reviewer-r12@shanks at aab65b81f6

Design 47, release 1-2, cut B: one delivery group with mesh-controller's feat/delivery-have. - Issue 1132 (ADR 0429 §4, §7 release 1): the node-engine reads each resource's `module` and the declaration's `builds` when the controller sends them (only to a node whose report says `reads_modules`), groups the apply's outcome per module, and writes `node-engine_have` `<node>.<module>` (phase, health, build, detail) and `<node>.node` (windows, busy, strays, filters, profile), only when a value differs, by compare-and-set, on the node's own credential; the bucket is bound once per pass under the queue's timeout and a refused write is logged and never holds the report. Nothing of today's report is deleted; the alive message stays (release 2). - Issue 1142 (its tests half): the bootstrap tests read build-agent's manifest from mesh-controller beside the check, where it lives since issue 1019; mesh-host's main failed its own check without it. The genesis half is issue 1152. Tests: 1132/AC1-AC8 (AC8 integration), 1142/AC1. Try build-1792344579242916461 passed in 59 s. Delivery: the node-engine to ace, g14, novox and shanks, with the controller of this group. Reviewed-by: reviewer-r12@shanks at aab65b81f65c3a2984e0c3b8dd7af1219d2650e5
mesh-tools added 3 commits 2026-10-18 17:34:16 +00:00
The node-engine reads a resource's module and a declaration's builds, says it does in every report (reads_modules), groups the apply's outcome per module with every failing resource named, and writes have.<node>.<module> and have.<node>.node to the bucket only when a value differs, never ahead of or in place of the report (novox/hq ADR 0429 section 4).
Read the build agent's manifest from the controller's repository beside the check, where it moved (issue 1151)
mesh/repo-check head aab65b81f65c merged into trunk 6469e8238443 — pass: its merge-check.sh passed
mesh/merge-gate head aab65b81f65c merged into trunk 6469e8238443 — pass: group feat/delivery-have composed: every machine composes with the change as it di…
mesh/delivery delivered
mesh/delivery-group group feat/delivery-have delivered: every member is delivered
aab65b81f6
Author
Member

Delivery novox/mesh-host@aab65b81f65c — delivered since 2026-10-18T21:45:42Z

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 feat/delivery-have: novox/mesh-controller@06bf8cb2fb, novox/mesh-host@aab65b81f6

  • composed together: pass — every machine composes with the change as it did without (4 of 4 compose)

Machines

  • mesh-host on every machine running it: sent
  • route-proxy on every machine running it: sent
  • mesh-controller on every machine running it: sent
  • build-agent on every machine running it: sent

Transitions

  • 2026-10-18 17:34 (new) → proposed (announced): novox/mesh-host#118's head announced
  • 2026-10-18 17:37 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-18 17:37 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-18 18:37 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-18 18:37 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-18 21:45 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@aab65b81f65c` — **delivered** since 2026-10-18T21:45:42Z **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** `feat/delivery-have`: novox/mesh-controller@06bf8cb2fb7a, novox/mesh-host@aab65b81f65c - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-host on every machine running it: sent - route-proxy on every machine running it: sent - mesh-controller on every machine running it: sent - build-agent on every machine running it: sent **Transitions** - 2026-10-18 17:34 (new) → proposed (announced): novox/mesh-host#118's head announced - 2026-10-18 17:37 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-18 17:37 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-18 18:37 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-18 18:37 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-18 21:45 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
Member

Merge check at aab65b81
Judged: head aab65b81f65c merged into trunk 6469e8238443; read beside it: mesh-catalog a6295d6b98d5, mesh-controller 48e9656c670b, mesh-controller-main 48e9656c670b, mesh-tools 7412c5b6c9c5

  • 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/module_facts_test.go, internal/apply/module_results_test.go, internal/bootstrap/builder_test.go, internal/declaration/module_test.go, internal/link/have_nats_integration_test.go, internal/link/have_test.go, internal/link/queue_test.go

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

--- 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-18T17:23:47Z says they run
composing every machine as the mesh is
HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
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
HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
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
HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
composing every machine with the change
HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
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
HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
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
HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
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-18T17:23:47Z

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-config, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-provisioner, 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/module_facts_test.go, internal/apply/module_results_test.go, internal/bootstrap/builder_test.go, internal/declaration/module_test.go, internal/link/have_nats_integration_test.go, internal/link/have_test.go and internal/link/queue_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.014s
ok  	github.com/novox/mesh-host/cmd/mesh-host	6.107s
ok  	github.com/novox/mesh-host/examples	1.027s
ok  	github.com/novox/mesh-host/internal/accounts	1.496s
ok  	github.com/novox/mesh-host/internal/apply	5.122s
ok  	github.com/novox/mesh-host/internal/bootstrap	3.949s
ok  	github.com/novox/mesh-host/internal/bundle	1.034s
ok  	github.com/novox/mesh-host/internal/declaration	1.073s
ok  	github.com/novox/mesh-host/internal/filling	1.754s
ok  	github.com/novox/mesh-host/internal/firewall	1.767s
ok  	github.com/novox/mesh-host/internal/identity	1.107s
ok  	github.com/novox/mesh-host/internal/image	1.032s
ok  	github.com/novox/mesh-host/internal/inventory	1.061s
ok  	github.com/novox/mesh-host/internal/link	10.619s
ok  	github.com/novox/mesh-host/internal/liveness	2.122s
ok  	github.com/novox/mesh-host/internal/meshcli	1.581s
ok  	github.com/novox/mesh-host/internal/network	1.052s
ok  	github.com/novox/mesh-host/internal/outward	1.039s
ok  	github.com/novox/mesh-host/internal/profile	1.646s
ok  	github.com/novox/mesh-host/internal/reachable	1.037s
ok  	github.com/novox/mesh-host/internal/store	1.229s
ok  	github.com/novox/mesh-host/internal/system	1.049s
ok  	github.com/novox/mesh-host/internal/tunnel	1.050s
ok  	github.com/novox/mesh-host/internal/units	1.032s
ok  	github.com/novox/mesh-host/internal/upgrade	1.157s
ok  	github.com/novox/mesh-host/internal/witness	4.568s
ok  	github.com/novox/mesh-host/packaging	1.020s
?   	github.com/novox/mesh-host/rootsearch	[no test files]
ok  	github.com/novox/mesh-host/validate	1.012s
**Merge check** at `aab65b81` Judged: head `aab65b81f65c` merged into trunk `6469e8238443`; read beside it: mesh-catalog `a6295d6b98d5`, mesh-controller `48e9656c670b`, mesh-controller-main `48e9656c670b`, mesh-tools `7412c5b6c9c5` - `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/module_facts_test.go, internal/apply/module_results_test.go, internal/bootstrap/builder_test.go, internal/declaration/module_test.go, internal/link/have_nats_integration_test.go, internal/link/have_test.go, internal/link/queue_test.go Run by the build seat on ace as `build-1792344859720760949` (`builds --log build-1792344859720760949`). ``` --- 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-18T17:23:47Z says they run composing every machine as the mesh is HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus 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 HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus 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 HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus composing every machine with the change HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus 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 HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on f35; sealed by the controller until the vault holds it: mesh-provisioner-client — own/f35/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on idt; sealed by the controller until the vault holds it: mesh-provisioner-client — own/idt/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus HELD: the vault did not answer for the core's credentials on ygcyr; sealed by the controller until the vault holds it: mesh-provisioner, mesh-provisioner-client, nats — own/ygcyr/mesh-provisioner/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus; own/ygcyr/nats/broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus 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 HELD: the vault did not answer for the core's credentials on yvbpsm; sealed by the controller until the vault holds it: mesh-provisioner-client — own/yvbpsm/mesh-provisioner-client/provisioner-broker: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus 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-18T17:23:47Z 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-config, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-provisioner, 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/module_facts_test.go, internal/apply/module_results_test.go, internal/bootstrap/builder_test.go, internal/declaration/module_test.go, internal/link/have_nats_integration_test.go, internal/link/have_test.go and internal/link/queue_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.014s ok github.com/novox/mesh-host/cmd/mesh-host 6.107s ok github.com/novox/mesh-host/examples 1.027s ok github.com/novox/mesh-host/internal/accounts 1.496s ok github.com/novox/mesh-host/internal/apply 5.122s ok github.com/novox/mesh-host/internal/bootstrap 3.949s ok github.com/novox/mesh-host/internal/bundle 1.034s ok github.com/novox/mesh-host/internal/declaration 1.073s ok github.com/novox/mesh-host/internal/filling 1.754s ok github.com/novox/mesh-host/internal/firewall 1.767s ok github.com/novox/mesh-host/internal/identity 1.107s ok github.com/novox/mesh-host/internal/image 1.032s ok github.com/novox/mesh-host/internal/inventory 1.061s ok github.com/novox/mesh-host/internal/link 10.619s ok github.com/novox/mesh-host/internal/liveness 2.122s ok github.com/novox/mesh-host/internal/meshcli 1.581s ok github.com/novox/mesh-host/internal/network 1.052s ok github.com/novox/mesh-host/internal/outward 1.039s ok github.com/novox/mesh-host/internal/profile 1.646s ok github.com/novox/mesh-host/internal/reachable 1.037s ok github.com/novox/mesh-host/internal/store 1.229s ok github.com/novox/mesh-host/internal/system 1.049s ok github.com/novox/mesh-host/internal/tunnel 1.050s ok github.com/novox/mesh-host/internal/units 1.032s ok github.com/novox/mesh-host/internal/upgrade 1.157s ok github.com/novox/mesh-host/internal/witness 4.568s ok github.com/novox/mesh-host/packaging 1.020s ? github.com/novox/mesh-host/rootsearch [no test files] ok github.com/novox/mesh-host/validate 1.012s ```
mesh-tools merged commit 8119c470d3 into main 2026-10-18 18:36:14 +00:00
mesh-tools deleted branch feat/delivery-have 2026-10-18 18:36:14 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#118