Part of the delivery group feat/the-bar-takes-blocks (hq ADR 0255): the bar takes blocks from the module that knows the hardware, placed only where the machine has it.
Two capabilities, read from the kernel, so the controller composes the power module's bar blocks only where they apply:
battery: a power supply of type Battery that powers the machine. A device's battery (scope Device, a mouse or headset) and an empty bay are not one.
power-meter: a system battery, a powercap package energy counter (RAPL, Intel and AMD), a graphics device's hwmon power, or an NVIDIA GPU. Only existence is checked; the counter itself stays root's.
Tests: internal/profile/power_test.go (laptop, device battery, workstation with processor and graphics meters, nothing). merge-check.sh passes locally.
Merge order: this first, then mesh-controller, then mesh-catalog (the inferred order: node-engine before controller before manifests). Do not merge without the operator's approval.
Part of the delivery group `feat/the-bar-takes-blocks` (hq ADR 0255): the bar takes blocks from the module that knows the hardware, placed only where the machine has it.
Two capabilities, read from the kernel, so the controller composes the power module's bar blocks only where they apply:
- `battery`: a power supply of type Battery that powers the machine. A device's battery (scope Device, a mouse or headset) and an empty bay are not one.
- `power-meter`: a system battery, a powercap package energy counter (RAPL, Intel and AMD), a graphics device's hwmon power, or an NVIDIA GPU. Only existence is checked; the counter itself stays root's.
Tests: `internal/profile/power_test.go` (laptop, device battery, workstation with processor and graphics meters, nothing). `merge-check.sh` passes locally.
Merge order: this first, then mesh-controller, then mesh-catalog (the inferred order: node-engine before controller before manifests). Do not merge without the operator's approval.
Deliverynovox/mesh-host@41b33927891d — delivered since 2026-10-08T13:00:33Z
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
Machines
mesh-host on ace: passed — healthy 3 times over 2m25s
mesh-host on the rest running it: sent
Transitions
2026-10-08 12:47 (new) → proposed (announced): novox/mesh-host#56's head announced
2026-10-08 12:50 proposed → checked (checked): the verdict names this commit
2026-10-08 12:50 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 12:55 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-08 12:55 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
2026-10-08 13:00 delivering → delivered (done): its walk is done: 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@41b33927891d` — **delivered** since 2026-10-08T13:00:33Z
**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
**Machines**
- mesh-host on ace: passed — healthy 3 times over 2m25s
- mesh-host on the rest running it: sent
**Transitions**
- 2026-10-08 12:47 (new) → proposed (announced): novox/mesh-host#56's head announced
- 2026-10-08 12:50 proposed → checked (checked): the verdict names this commit
- 2026-10-08 12:50 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 12:55 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-08 12:55 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
- 2026-10-08 13:00 delivering → delivered (done): its walk is done: 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/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
Run by the build seat on g14 as build-1791459953520648663 (builds --log build-1791459953520648663).
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T11:31:31Z 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-08T11:31:31Z
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
--- 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 5.260s
ok github.com/novox/mesh-host/examples 1.022s
ok github.com/novox/mesh-host/internal/accounts 1.017s
ok github.com/novox/mesh-host/internal/apply 2.085s
ok github.com/novox/mesh-host/internal/bootstrap 1.388s
ok github.com/novox/mesh-host/internal/bundle 1.012s
ok github.com/novox/mesh-host/internal/declaration 1.068s
ok github.com/novox/mesh-host/internal/firewall 1.703s
ok github.com/novox/mesh-host/internal/identity 1.052s
ok github.com/novox/mesh-host/internal/image 1.030s
ok github.com/novox/mesh-host/internal/inventory 1.018s
ok github.com/novox/mesh-host/internal/link 10.316s
ok github.com/novox/mesh-host/internal/liveness 2.054s
ok github.com/novox/mesh-host/internal/network 1.046s
ok github.com/novox/mesh-host/internal/outward 1.035s
ok github.com/novox/mesh-host/internal/profile 1.524s
ok github.com/novox/mesh-host/internal/reachable 1.018s
ok github.com/novox/mesh-host/internal/store 1.090s
ok github.com/novox/mesh-host/internal/system 1.016s
ok github.com/novox/mesh-host/internal/tunnel 1.018s
ok github.com/novox/mesh-host/internal/units 1.012s
ok github.com/novox/mesh-host/internal/upgrade 1.047s
ok github.com/novox/mesh-host/internal/witness 1.497s
ok github.com/novox/mesh-host/packaging 1.014s
ok github.com/novox/mesh-host/validate 1.012s
**Merge check** at `1cb99485`
- `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
Run by the build seat on g14 as `build-1791459953520648663` (`builds --log build-1791459953520648663`).
```
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T11:31:31Z 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-08T11:31:31Z
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
--- 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 5.260s
ok github.com/novox/mesh-host/examples 1.022s
ok github.com/novox/mesh-host/internal/accounts 1.017s
ok github.com/novox/mesh-host/internal/apply 2.085s
ok github.com/novox/mesh-host/internal/bootstrap 1.388s
ok github.com/novox/mesh-host/internal/bundle 1.012s
ok github.com/novox/mesh-host/internal/declaration 1.068s
ok github.com/novox/mesh-host/internal/firewall 1.703s
ok github.com/novox/mesh-host/internal/identity 1.052s
ok github.com/novox/mesh-host/internal/image 1.030s
ok github.com/novox/mesh-host/internal/inventory 1.018s
ok github.com/novox/mesh-host/internal/link 10.316s
ok github.com/novox/mesh-host/internal/liveness 2.054s
ok github.com/novox/mesh-host/internal/network 1.046s
ok github.com/novox/mesh-host/internal/outward 1.035s
ok github.com/novox/mesh-host/internal/profile 1.524s
ok github.com/novox/mesh-host/internal/reachable 1.018s
ok github.com/novox/mesh-host/internal/store 1.090s
ok github.com/novox/mesh-host/internal/system 1.016s
ok github.com/novox/mesh-host/internal/tunnel 1.018s
ok github.com/novox/mesh-host/internal/units 1.012s
ok github.com/novox/mesh-host/internal/upgrade 1.047s
ok github.com/novox/mesh-host/internal/witness 1.497s
ok github.com/novox/mesh-host/packaging 1.014s
ok github.com/novox/mesh-host/validate 1.012s
```
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
Run by the build seat on shanks as build-1791462948858880716 (builds --log build-1791462948858880716).
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T12:31:31Z 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-08T12:31:31Z
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
--- 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 5.362s
ok github.com/novox/mesh-host/examples 1.020s
ok github.com/novox/mesh-host/internal/accounts 1.016s
ok github.com/novox/mesh-host/internal/apply 4.503s
ok github.com/novox/mesh-host/internal/bootstrap 1.638s
ok github.com/novox/mesh-host/internal/bundle 1.033s
ok github.com/novox/mesh-host/internal/declaration 1.076s
ok github.com/novox/mesh-host/internal/firewall 1.858s
ok github.com/novox/mesh-host/internal/identity 1.169s
ok github.com/novox/mesh-host/internal/image 1.046s
ok github.com/novox/mesh-host/internal/inventory 1.076s
ok github.com/novox/mesh-host/internal/link 10.357s
ok github.com/novox/mesh-host/internal/liveness 2.140s
ok github.com/novox/mesh-host/internal/network 1.099s
ok github.com/novox/mesh-host/internal/outward 1.057s
ok github.com/novox/mesh-host/internal/profile 1.536s
ok github.com/novox/mesh-host/internal/reachable 1.053s
ok github.com/novox/mesh-host/internal/store 1.275s
ok github.com/novox/mesh-host/internal/system 1.052s
ok github.com/novox/mesh-host/internal/tunnel 1.062s
ok github.com/novox/mesh-host/internal/units 1.040s
ok github.com/novox/mesh-host/internal/upgrade 1.204s
ok github.com/novox/mesh-host/internal/witness 4.775s
ok github.com/novox/mesh-host/packaging 1.052s
ok github.com/novox/mesh-host/validate 1.052s
**Merge check** at `52f44c56`
- `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
Run by the build seat on shanks as `build-1791462948858880716` (`builds --log build-1791462948858880716`).
```
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T12:31:31Z 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-08T12:31:31Z
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
--- 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 5.362s
ok github.com/novox/mesh-host/examples 1.020s
ok github.com/novox/mesh-host/internal/accounts 1.016s
ok github.com/novox/mesh-host/internal/apply 4.503s
ok github.com/novox/mesh-host/internal/bootstrap 1.638s
ok github.com/novox/mesh-host/internal/bundle 1.033s
ok github.com/novox/mesh-host/internal/declaration 1.076s
ok github.com/novox/mesh-host/internal/firewall 1.858s
ok github.com/novox/mesh-host/internal/identity 1.169s
ok github.com/novox/mesh-host/internal/image 1.046s
ok github.com/novox/mesh-host/internal/inventory 1.076s
ok github.com/novox/mesh-host/internal/link 10.357s
ok github.com/novox/mesh-host/internal/liveness 2.140s
ok github.com/novox/mesh-host/internal/network 1.099s
ok github.com/novox/mesh-host/internal/outward 1.057s
ok github.com/novox/mesh-host/internal/profile 1.536s
ok github.com/novox/mesh-host/internal/reachable 1.053s
ok github.com/novox/mesh-host/internal/store 1.275s
ok github.com/novox/mesh-host/internal/system 1.052s
ok github.com/novox/mesh-host/internal/tunnel 1.062s
ok github.com/novox/mesh-host/internal/units 1.040s
ok github.com/novox/mesh-host/internal/upgrade 1.204s
ok github.com/novox/mesh-host/internal/witness 4.775s
ok github.com/novox/mesh-host/packaging 1.052s
ok github.com/novox/mesh-host/validate 1.052s
```
The power module is on every machine and its bar blocks apply only where the
hardware is. Two capabilities read from the kernel let the controller compose them
there and nowhere else: battery (a Battery supply not scoped to a device) and
power-meter (a system battery, a powercap package counter, or a graphics device
reporting its power).
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
An APU's integrated graphics and Intel's second (MMIO) view of a package made a machine
report a power meter the sampler would not read, so its bar could only say not
measured.
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
Run by the build seat on novox as build-1791463662678507694 (builds --log build-1791463662678507694).
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T12:46:24Z 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-08T12:46:24Z
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
--- 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 6.526s
ok github.com/novox/mesh-host/examples 1.020s
ok github.com/novox/mesh-host/internal/accounts 1.051s
ok github.com/novox/mesh-host/internal/apply 25.038s
ok github.com/novox/mesh-host/internal/bootstrap 2.821s
ok github.com/novox/mesh-host/internal/bundle 1.014s
ok github.com/novox/mesh-host/internal/declaration 1.052s
ok github.com/novox/mesh-host/internal/firewall 1.831s
ok github.com/novox/mesh-host/internal/identity 1.516s
ok github.com/novox/mesh-host/internal/image 1.016s
ok github.com/novox/mesh-host/internal/inventory 1.015s
ok github.com/novox/mesh-host/internal/link 10.357s
ok github.com/novox/mesh-host/internal/liveness 2.414s
ok github.com/novox/mesh-host/internal/network 1.053s
ok github.com/novox/mesh-host/internal/outward 1.015s
ok github.com/novox/mesh-host/internal/profile 1.481s
ok github.com/novox/mesh-host/internal/reachable 1.012s
ok github.com/novox/mesh-host/internal/store 1.898s
ok github.com/novox/mesh-host/internal/system 1.011s
ok github.com/novox/mesh-host/internal/tunnel 1.014s
ok github.com/novox/mesh-host/internal/units 1.007s
ok github.com/novox/mesh-host/internal/upgrade 1.649s
ok github.com/novox/mesh-host/internal/witness 28.676s
ok github.com/novox/mesh-host/packaging 1.008s
ok github.com/novox/mesh-host/validate 1.007s
**Merge check** at `41b33927`
- `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
Run by the build seat on novox as `build-1791463662678507694` (`builds --log build-1791463662678507694`).
```
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T12:46:24Z 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-08T12:46:24Z
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
--- 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 6.526s
ok github.com/novox/mesh-host/examples 1.020s
ok github.com/novox/mesh-host/internal/accounts 1.051s
ok github.com/novox/mesh-host/internal/apply 25.038s
ok github.com/novox/mesh-host/internal/bootstrap 2.821s
ok github.com/novox/mesh-host/internal/bundle 1.014s
ok github.com/novox/mesh-host/internal/declaration 1.052s
ok github.com/novox/mesh-host/internal/firewall 1.831s
ok github.com/novox/mesh-host/internal/identity 1.516s
ok github.com/novox/mesh-host/internal/image 1.016s
ok github.com/novox/mesh-host/internal/inventory 1.015s
ok github.com/novox/mesh-host/internal/link 10.357s
ok github.com/novox/mesh-host/internal/liveness 2.414s
ok github.com/novox/mesh-host/internal/network 1.053s
ok github.com/novox/mesh-host/internal/outward 1.015s
ok github.com/novox/mesh-host/internal/profile 1.481s
ok github.com/novox/mesh-host/internal/reachable 1.012s
ok github.com/novox/mesh-host/internal/store 1.898s
ok github.com/novox/mesh-host/internal/system 1.011s
ok github.com/novox/mesh-host/internal/tunnel 1.014s
ok github.com/novox/mesh-host/internal/units 1.007s
ok github.com/novox/mesh-host/internal/upgrade 1.649s
ok github.com/novox/mesh-host/internal/witness 28.676s
ok github.com/novox/mesh-host/packaging 1.008s
ok github.com/novox/mesh-host/validate 1.007s
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the delivery group
feat/the-bar-takes-blocks(hq ADR 0255): the bar takes blocks from the module that knows the hardware, placed only where the machine has it.Two capabilities, read from the kernel, so the controller composes the power module's bar blocks only where they apply:
battery: a power supply of type Battery that powers the machine. A device's battery (scope Device, a mouse or headset) and an empty bay are not one.power-meter: a system battery, a powercap package energy counter (RAPL, Intel and AMD), a graphics device's hwmon power, or an NVIDIA GPU. Only existence is checked; the counter itself stays root's.Tests:
internal/profile/power_test.go(laptop, device battery, workstation with processor and graphics meters, nothing).merge-check.shpasses locally.Merge order: this first, then mesh-controller, then mesh-catalog (the inferred order: node-engine before controller before manifests). Do not merge without the operator's approval.
Delivery
novox/mesh-host@41b33927891d— delivered since 2026-10-08T13:00:33ZDelivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
1cb99485mesh/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 passedDelivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
Run by the build seat on g14 as
build-1791459953520648663(builds --log build-1791459953520648663).Merge check at
52f44c56mesh/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 passedDelivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791462948858880716(builds --log build-1791462948858880716).52f44c5636to41b3392789Merge check at
41b33927mesh/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 passedDelivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
Run by the build seat on novox as
build-1791463662678507694(builds --log build-1791463662678507694).