A running module could never gain a setting: a file asking for ${setting:<key>} failed composition until a layer set it, and settings refused the key as reaching nothing until a file asked for it.
Manifest settings: per key kind: preference, a scalar default and a why. The default sits under the mesh-wide and the node's settings and fills ${setting:} in files, contributions and served facts; never merged into a mergeable JSON file (issue 168), never over a contribution's own value. The defaults layer is marked (Layer.Default), so a node called default keeps its layer.
Module check: refuses a default without kind: preference, a missing/empty/non-scalar default, a missing why, one of the mesh's own keys, a declared key nothing asks for, and a key about the operator's own value: its last word (singular) is an identity word (domain, host, hostname, zone, site, timezone, url, ip, ipv4/6, mail, user, owner, uid, password, secret, token, key, apikey, bearer, cert, ...) or its last two a compound (client-id, site-name, server-name, public-name, smtp-relay). max-*/show-*-style keys, user-agent and url-timeout are preferences. The installation check reads a default under any key.
A stored manifest with a key this controller does not know (at the top or in any block: state, provides, offer identity, data backup, own secret, seat verb; a typed UnknownFieldError) no longer fails the catalogue and is never read silently: the module is left out of every machine's declaration by name (LeftOut), the controller's tick raises a condition per module (mesh.<module>.unknown-field, plain words) and clears it once it reads, and the log says it once. Registration stays strict.
settings: show prints the stored layer, then every value with its source. With list: "preferences" (or no module) it lists every module's preferences and each assigned machine's value with its source; with node, only the modules on that machine, and an unknown node is refused; values or a clear without a module are refused ("a module is needed to set values").
Merge order: this first. mesh-catalog #132 (same branch, dunst) is refused by the running controller until this is live; then mesh-delivery.recheck#132.
A running module could never gain a setting: a file asking for `${setting:<key>}` failed composition until a layer set it, and `settings` refused the key as reaching nothing until a file asked for it.
- **Manifest `settings`:** per key `kind: preference`, a scalar `default` and a `why`. The default sits under the mesh-wide and the node's settings and fills `${setting:}` in files, contributions and served facts; never merged into a mergeable JSON file (issue 168), never over a contribution's own value. The defaults layer is marked (`Layer.Default`), so a node called `default` keeps its layer.
- **Module check:** refuses a default without `kind: preference`, a missing/empty/non-scalar default, a missing `why`, one of the mesh's own keys, a declared key nothing asks for, and a key about the operator's own value: its last word (singular) is an identity word (domain, host, hostname, zone, site, timezone, url, ip, ipv4/6, mail, user, owner, uid, password, secret, token, key, apikey, bearer, cert, ...) or its last two a compound (client-id, site-name, server-name, public-name, smtp-relay). `max-*`/`show-*`-style keys, `user-agent` and `url-timeout` are preferences. The installation check reads a default under any key.
- **A stored manifest with a key this controller does not know** (at the top or in any block: state, provides, offer identity, data backup, own secret, seat verb; a typed `UnknownFieldError`) no longer fails the catalogue and is never read silently: the module is left out of every machine's declaration by name (`LeftOut`), the controller's tick raises a condition per module (`mesh.<module>.unknown-field`, plain words) and clears it once it reads, and the log says it once. Registration stays strict.
- **`settings`:** show prints the stored layer, then every value with its source. With `list: "preferences"` (or no module) it lists every module's preferences and each assigned machine's value with its source; with `node`, only the modules on that machine, and an unknown node is refused; values or a clear without a module are refused ("a module is needed to set values").
**Merge order:** this first. mesh-catalog #132 (same branch, dunst) is refused by the running controller until this is live; then `mesh-delivery.recheck` #132.
hq: ADR 0262 and research 037, hq #216.
mesh-controller on novox: passed — healthy 3 times over 3m2s
mesh-controller on the rest running it: sent
build-agent on ace: passed — healthy 3 times over 3m51s
build-agent on the rest running it: sent
route-proxy on ace: passed — healthy 3 times over 3m14s
route-proxy on the rest running it: sent
Transitions
2026-10-08 15:35 (new) → proposed (announced): novox/mesh-controller#153's head announced
2026-10-08 15:47 proposed → checked (checked): the verdict names this commit
2026-10-08 15:47 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 15: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 15: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 16:11 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-controller@af63b233dbd5` — **delivered** since 2026-10-08T16:11:06Z
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
**Group** `feat/setting-defaults`, in order: novox/hq@63c041771f23 → novox/mesh-controller@af63b233dbd5 → novox/mesh-catalog@84731d8fc629
- novox/mesh-controller@af63b233dbd5 before novox/mesh-catalog@84731d8fc629: built by
**Machines**
- mesh-controller on novox: passed — healthy 3 times over 3m2s
- mesh-controller on the rest running it: sent
- build-agent on ace: passed — healthy 3 times over 3m51s
- build-agent on the rest running it: sent
- route-proxy on ace: passed — healthy 3 times over 3m14s
- route-proxy on the rest running it: sent
**Transitions**
- 2026-10-08 15:35 (new) → proposed (announced): novox/mesh-controller#153's head announced
- 2026-10-08 15:47 proposed → checked (checked): the verdict names this commit
- 2026-10-08 15:47 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 15: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 15: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 16:11 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`.
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on novox as build-1791469402183385948 (builds --log build-1791469402183385948).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T14:20:42Z 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-08T14:20:42Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.038s
ok github.com/novox/mesh-controller/cmd/mesh-controller 202.013s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.030s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.022s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.017s
ok github.com/novox/mesh-controller/examples/route-proxy 1.118s
ok github.com/novox/mesh-controller/internal/artifacts 1.056s
ok github.com/novox/mesh-controller/internal/broker 5.409s
ok github.com/novox/mesh-controller/internal/builder 8.883s
ok github.com/novox/mesh-controller/internal/catalogue 4.833s
ok github.com/novox/mesh-controller/internal/conditions 2.507s
ok github.com/novox/mesh-controller/internal/envfile 1.024s
ok github.com/novox/mesh-controller/internal/facts 1.033s
ok github.com/novox/mesh-controller/internal/identity 8.497s
ok github.com/novox/mesh-controller/internal/inventory 94.687s
ok github.com/novox/mesh-controller/internal/lease 17.700s
ok github.com/novox/mesh-controller/internal/licences 7.908s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.014s
ok github.com/novox/mesh-controller/internal/link 49.345s
ok github.com/novox/mesh-controller/internal/lint 2.035s
ok github.com/novox/mesh-controller/internal/outward 1.039s
ok github.com/novox/mesh-controller/internal/overlay 1.024s
ok github.com/novox/mesh-controller/internal/secrets 1.438s
ok github.com/novox/mesh-controller/internal/store 5.588s
ok github.com/novox/mesh-controller/internal/testbus 1.182s
ok github.com/novox/mesh-controller/internal/token 1.019s
**Merge check** at `363683d1`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on novox as `build-1791469402183385948` (`builds --log build-1791469402183385948`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T14:20:42Z 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-08T14:20:42Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.038s
ok github.com/novox/mesh-controller/cmd/mesh-controller 202.013s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.030s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.022s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.017s
ok github.com/novox/mesh-controller/examples/route-proxy 1.118s
ok github.com/novox/mesh-controller/internal/artifacts 1.056s
ok github.com/novox/mesh-controller/internal/broker 5.409s
ok github.com/novox/mesh-controller/internal/builder 8.883s
ok github.com/novox/mesh-controller/internal/catalogue 4.833s
ok github.com/novox/mesh-controller/internal/conditions 2.507s
ok github.com/novox/mesh-controller/internal/envfile 1.024s
ok github.com/novox/mesh-controller/internal/facts 1.033s
ok github.com/novox/mesh-controller/internal/identity 8.497s
ok github.com/novox/mesh-controller/internal/inventory 94.687s
ok github.com/novox/mesh-controller/internal/lease 17.700s
ok github.com/novox/mesh-controller/internal/licences 7.908s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.014s
ok github.com/novox/mesh-controller/internal/link 49.345s
ok github.com/novox/mesh-controller/internal/lint 2.035s
ok github.com/novox/mesh-controller/internal/outward 1.039s
ok github.com/novox/mesh-controller/internal/overlay 1.024s
ok github.com/novox/mesh-controller/internal/secrets 1.438s
ok github.com/novox/mesh-controller/internal/store 5.588s
ok github.com/novox/mesh-controller/internal/testbus 1.182s
ok github.com/novox/mesh-controller/internal/token 1.019s
```
mesh-admin
changed title from Fill a preference's ${setting:} from its manifest default (hq ADR 0261) to Fill a preference's ${setting:} from its manifest default (hq ADR 0262)2026-10-08 14:38:56 +00:00
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on ace as build-1791470334285885662 (builds --log build-1791470334285885662).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T14:30:42Z 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-08T14:30:42Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.032s
ok github.com/novox/mesh-controller/cmd/mesh-controller 150.534s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.013s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.017s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s
ok github.com/novox/mesh-controller/examples/route-proxy 1.131s
ok github.com/novox/mesh-controller/internal/artifacts 1.038s
ok github.com/novox/mesh-controller/internal/broker 2.442s
ok github.com/novox/mesh-controller/internal/builder 1.872s
ok github.com/novox/mesh-controller/internal/catalogue 4.080s
ok github.com/novox/mesh-controller/internal/conditions 2.199s
ok github.com/novox/mesh-controller/internal/envfile 1.062s
ok github.com/novox/mesh-controller/internal/facts 1.061s
ok github.com/novox/mesh-controller/internal/identity 4.146s
ok github.com/novox/mesh-controller/internal/inventory 69.125s
ok github.com/novox/mesh-controller/internal/lease 17.694s
ok github.com/novox/mesh-controller/internal/licences 3.732s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.061s
ok github.com/novox/mesh-controller/internal/link 43.640s
ok github.com/novox/mesh-controller/internal/lint 1.920s
ok github.com/novox/mesh-controller/internal/outward 1.084s
ok github.com/novox/mesh-controller/internal/overlay 1.071s
ok github.com/novox/mesh-controller/internal/secrets 1.448s
ok github.com/novox/mesh-controller/internal/store 3.284s
ok github.com/novox/mesh-controller/internal/testbus 1.225s
ok github.com/novox/mesh-controller/internal/token 1.016s
**Merge check** at `5af92983`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on ace as `build-1791470334285885662` (`builds --log build-1791470334285885662`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T14:30:42Z 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-08T14:30:42Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.032s
ok github.com/novox/mesh-controller/cmd/mesh-controller 150.534s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.013s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.017s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s
ok github.com/novox/mesh-controller/examples/route-proxy 1.131s
ok github.com/novox/mesh-controller/internal/artifacts 1.038s
ok github.com/novox/mesh-controller/internal/broker 2.442s
ok github.com/novox/mesh-controller/internal/builder 1.872s
ok github.com/novox/mesh-controller/internal/catalogue 4.080s
ok github.com/novox/mesh-controller/internal/conditions 2.199s
ok github.com/novox/mesh-controller/internal/envfile 1.062s
ok github.com/novox/mesh-controller/internal/facts 1.061s
ok github.com/novox/mesh-controller/internal/identity 4.146s
ok github.com/novox/mesh-controller/internal/inventory 69.125s
ok github.com/novox/mesh-controller/internal/lease 17.694s
ok github.com/novox/mesh-controller/internal/licences 3.732s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.061s
ok github.com/novox/mesh-controller/internal/link 43.640s
ok github.com/novox/mesh-controller/internal/lint 1.920s
ok github.com/novox/mesh-controller/internal/outward 1.084s
ok github.com/novox/mesh-controller/internal/overlay 1.071s
ok github.com/novox/mesh-controller/internal/secrets 1.448s
ok github.com/novox/mesh-controller/internal/store 3.284s
ok github.com/novox/mesh-controller/internal/testbus 1.225s
ok github.com/novox/mesh-controller/internal/token 1.016s
```
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on novox as build-1791471215908414412 (builds --log build-1791471215908414412).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T14:50:42Z 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-08T14:50:42Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.043s
ok github.com/novox/mesh-controller/cmd/mesh-controller 194.552s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.016s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.029s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.019s
ok github.com/novox/mesh-controller/examples/route-proxy 1.125s
ok github.com/novox/mesh-controller/internal/artifacts 1.053s
ok github.com/novox/mesh-controller/internal/broker 7.688s
ok github.com/novox/mesh-controller/internal/builder 10.029s
ok github.com/novox/mesh-controller/internal/catalogue 4.810s
ok github.com/novox/mesh-controller/internal/conditions 2.217s
ok github.com/novox/mesh-controller/internal/envfile 1.024s
ok github.com/novox/mesh-controller/internal/facts 1.035s
ok github.com/novox/mesh-controller/internal/identity 9.639s
ok github.com/novox/mesh-controller/internal/inventory 92.208s
ok github.com/novox/mesh-controller/internal/lease 17.677s
ok github.com/novox/mesh-controller/internal/licences 9.176s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.012s
ok github.com/novox/mesh-controller/internal/link 47.457s
ok github.com/novox/mesh-controller/internal/lint 2.035s
ok github.com/novox/mesh-controller/internal/outward 1.039s
ok github.com/novox/mesh-controller/internal/overlay 1.025s
ok github.com/novox/mesh-controller/internal/secrets 1.439s
ok github.com/novox/mesh-controller/internal/store 5.833s
ok github.com/novox/mesh-controller/internal/testbus 1.174s
ok github.com/novox/mesh-controller/internal/token 1.016s
**Merge check** at `b922a2d7`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on novox as `build-1791471215908414412` (`builds --log build-1791471215908414412`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T14:50:42Z 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-08T14:50:42Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.043s
ok github.com/novox/mesh-controller/cmd/mesh-controller 194.552s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.016s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.029s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.019s
ok github.com/novox/mesh-controller/examples/route-proxy 1.125s
ok github.com/novox/mesh-controller/internal/artifacts 1.053s
ok github.com/novox/mesh-controller/internal/broker 7.688s
ok github.com/novox/mesh-controller/internal/builder 10.029s
ok github.com/novox/mesh-controller/internal/catalogue 4.810s
ok github.com/novox/mesh-controller/internal/conditions 2.217s
ok github.com/novox/mesh-controller/internal/envfile 1.024s
ok github.com/novox/mesh-controller/internal/facts 1.035s
ok github.com/novox/mesh-controller/internal/identity 9.639s
ok github.com/novox/mesh-controller/internal/inventory 92.208s
ok github.com/novox/mesh-controller/internal/lease 17.677s
ok github.com/novox/mesh-controller/internal/licences 9.176s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.012s
ok github.com/novox/mesh-controller/internal/link 47.457s
ok github.com/novox/mesh-controller/internal/lint 2.035s
ok github.com/novox/mesh-controller/internal/outward 1.039s
ok github.com/novox/mesh-controller/internal/overlay 1.025s
ok github.com/novox/mesh-controller/internal/secrets 1.439s
ok github.com/novox/mesh-controller/internal/store 5.833s
ok github.com/novox/mesh-controller/internal/testbus 1.174s
ok github.com/novox/mesh-controller/internal/token 1.016s
```
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on shanks as build-1791472231294564793 (builds --log build-1791472231294564793).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T15:09:23Z 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-08T15:09:23Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.033s
ok github.com/novox/mesh-controller/cmd/mesh-controller 182.805s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.045s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.055s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.039s
ok github.com/novox/mesh-controller/examples/route-proxy 1.233s
ok github.com/novox/mesh-controller/internal/artifacts 1.079s
ok github.com/novox/mesh-controller/internal/broker 2.618s
ok github.com/novox/mesh-controller/internal/builder 1.917s
ok github.com/novox/mesh-controller/internal/catalogue 4.836s
ok github.com/novox/mesh-controller/internal/conditions 2.236s
ok github.com/novox/mesh-controller/internal/envfile 1.061s
ok github.com/novox/mesh-controller/internal/facts 1.064s
ok github.com/novox/mesh-controller/internal/identity 4.691s
ok github.com/novox/mesh-controller/internal/inventory 83.171s
ok github.com/novox/mesh-controller/internal/lease 17.698s
ok github.com/novox/mesh-controller/internal/licences 4.265s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.050s
ok github.com/novox/mesh-controller/internal/link 46.309s
ok github.com/novox/mesh-controller/internal/lint 2.151s
ok github.com/novox/mesh-controller/internal/outward 1.080s
ok github.com/novox/mesh-controller/internal/overlay 1.072s
ok github.com/novox/mesh-controller/internal/secrets 1.558s
ok github.com/novox/mesh-controller/internal/store 3.451s
ok github.com/novox/mesh-controller/internal/testbus 1.231s
ok github.com/novox/mesh-controller/internal/token 1.014s
**Merge check** at `d3f2ecb9`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on shanks as `build-1791472231294564793` (`builds --log build-1791472231294564793`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T15:09:23Z 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-08T15:09:23Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.033s
ok github.com/novox/mesh-controller/cmd/mesh-controller 182.805s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.045s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.055s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.039s
ok github.com/novox/mesh-controller/examples/route-proxy 1.233s
ok github.com/novox/mesh-controller/internal/artifacts 1.079s
ok github.com/novox/mesh-controller/internal/broker 2.618s
ok github.com/novox/mesh-controller/internal/builder 1.917s
ok github.com/novox/mesh-controller/internal/catalogue 4.836s
ok github.com/novox/mesh-controller/internal/conditions 2.236s
ok github.com/novox/mesh-controller/internal/envfile 1.061s
ok github.com/novox/mesh-controller/internal/facts 1.064s
ok github.com/novox/mesh-controller/internal/identity 4.691s
ok github.com/novox/mesh-controller/internal/inventory 83.171s
ok github.com/novox/mesh-controller/internal/lease 17.698s
ok github.com/novox/mesh-controller/internal/licences 4.265s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.050s
ok github.com/novox/mesh-controller/internal/link 46.309s
ok github.com/novox/mesh-controller/internal/lint 2.151s
ok github.com/novox/mesh-controller/internal/outward 1.080s
ok github.com/novox/mesh-controller/internal/overlay 1.072s
ok github.com/novox/mesh-controller/internal/secrets 1.558s
ok github.com/novox/mesh-controller/internal/store 3.451s
ok github.com/novox/mesh-controller/internal/testbus 1.231s
ok github.com/novox/mesh-controller/internal/token 1.014s
```
Without a default, a running module could never gain a setting: the file asking for it
failed to compose until set, and the key was refused as stray until a file asked for it.
Defaults sit under the mesh's and the node's settings, never merge into a JSON file, are
refused for the operator's own values, and settings shows each value's source.
A strict read of the stored catalogue fails every plan and send once a manifest uses a field an older
controller lacks; registration stays strict. A node named default lost its layer to the name check.
Judge the operator's keys by whole words, and scan a default under any key.
One verb is the interface to every preference, so no module builds a settings tool of its own: each
key, its default and why, and every assigned machine's value with its source.
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
A key dropped silently ran a module without what its manifest says, and a key inside a block still
failed the whole catalogue. Judge a key by what it is about, and narrow the listing to one machine.
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on g14 as build-1791473711169449837 (builds --log build-1791473711169449837).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T15:33:40Z 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-08T15:33:40Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.033s
ok github.com/novox/mesh-controller/cmd/mesh-controller 185.698s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.015s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.018s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.014s
ok github.com/novox/mesh-controller/examples/route-proxy 1.191s
ok github.com/novox/mesh-controller/internal/artifacts 1.045s
ok github.com/novox/mesh-controller/internal/broker 2.602s
ok github.com/novox/mesh-controller/internal/builder 2.112s
ok github.com/novox/mesh-controller/internal/catalogue 4.559s
ok github.com/novox/mesh-controller/internal/conditions 2.174s
ok github.com/novox/mesh-controller/internal/envfile 1.028s
ok github.com/novox/mesh-controller/internal/facts 1.033s
ok github.com/novox/mesh-controller/internal/identity 4.679s
ok github.com/novox/mesh-controller/internal/inventory 74.172s
ok github.com/novox/mesh-controller/internal/lease 17.687s
ok github.com/novox/mesh-controller/internal/licences 4.304s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.018s
ok github.com/novox/mesh-controller/internal/link 44.655s
ok github.com/novox/mesh-controller/internal/lint 2.065s
ok github.com/novox/mesh-controller/internal/outward 1.067s
ok github.com/novox/mesh-controller/internal/overlay 1.046s
ok github.com/novox/mesh-controller/internal/secrets 1.455s
ok github.com/novox/mesh-controller/internal/store 3.280s
ok github.com/novox/mesh-controller/internal/testbus 1.219s
ok github.com/novox/mesh-controller/internal/token 1.027s
**Merge check** at `af63b233`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
Run by the build seat on g14 as `build-1791473711169449837` (`builds --log build-1791473711169449837`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
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-08T15:33:40Z 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-08T15:33:40Z
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 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.033s
ok github.com/novox/mesh-controller/cmd/mesh-controller 185.698s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.015s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.018s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.014s
ok github.com/novox/mesh-controller/examples/route-proxy 1.191s
ok github.com/novox/mesh-controller/internal/artifacts 1.045s
ok github.com/novox/mesh-controller/internal/broker 2.602s
ok github.com/novox/mesh-controller/internal/builder 2.112s
ok github.com/novox/mesh-controller/internal/catalogue 4.559s
ok github.com/novox/mesh-controller/internal/conditions 2.174s
ok github.com/novox/mesh-controller/internal/envfile 1.028s
ok github.com/novox/mesh-controller/internal/facts 1.033s
ok github.com/novox/mesh-controller/internal/identity 4.679s
ok github.com/novox/mesh-controller/internal/inventory 74.172s
ok github.com/novox/mesh-controller/internal/lease 17.687s
ok github.com/novox/mesh-controller/internal/licences 4.304s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.018s
ok github.com/novox/mesh-controller/internal/link 44.655s
ok github.com/novox/mesh-controller/internal/lint 2.065s
ok github.com/novox/mesh-controller/internal/outward 1.067s
ok github.com/novox/mesh-controller/internal/overlay 1.046s
ok github.com/novox/mesh-controller/internal/secrets 1.455s
ok github.com/novox/mesh-controller/internal/store 3.280s
ok github.com/novox/mesh-controller/internal/testbus 1.219s
ok github.com/novox/mesh-controller/internal/token 1.027s
```
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.
A running module could never gain a setting: a file asking for
${setting:<key>}failed composition until a layer set it, andsettingsrefused the key as reaching nothing until a file asked for it.settings: per keykind: preference, a scalardefaultand awhy. The default sits under the mesh-wide and the node's settings and fills${setting:}in files, contributions and served facts; never merged into a mergeable JSON file (issue 168), never over a contribution's own value. The defaults layer is marked (Layer.Default), so a node calleddefaultkeeps its layer.kind: preference, a missing/empty/non-scalar default, a missingwhy, one of the mesh's own keys, a declared key nothing asks for, and a key about the operator's own value: its last word (singular) is an identity word (domain, host, hostname, zone, site, timezone, url, ip, ipv4/6, mail, user, owner, uid, password, secret, token, key, apikey, bearer, cert, ...) or its last two a compound (client-id, site-name, server-name, public-name, smtp-relay).max-*/show-*-style keys,user-agentandurl-timeoutare preferences. The installation check reads a default under any key.UnknownFieldError) no longer fails the catalogue and is never read silently: the module is left out of every machine's declaration by name (LeftOut), the controller's tick raises a condition per module (mesh.<module>.unknown-field, plain words) and clears it once it reads, and the log says it once. Registration stays strict.settings: show prints the stored layer, then every value with its source. Withlist: "preferences"(or no module) it lists every module's preferences and each assigned machine's value with its source; withnode, only the modules on that machine, and an unknown node is refused; values or a clear without a module are refused ("a module is needed to set values").Merge order: this first. mesh-catalog #132 (same branch, dunst) is refused by the running controller until this is live; then
mesh-delivery.recheck#132.hq: ADR 0262 and research 037, hq #216.
Delivery
novox/mesh-controller@af63b233dbd5— delivered since 2026-10-08T16:11:06ZDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Group
feat/setting-defaults, in order: novox/hq@63c041771f → novox/mesh-controller@af63b233db → novox/mesh-catalog@84731d8fc6Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
363683d1mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on novox as
build-1791469402183385948(builds --log build-1791469402183385948).363683d13dto5af92983f7Fill a preference's ${setting:} from its manifest default (hq ADR 0261)to Fill a preference's ${setting:} from its manifest default (hq ADR 0262)Merge check at
5af92983mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1791470334285885662(builds --log build-1791470334285885662).Merge check at
b922a2d7mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on novox as
build-1791471215908414412(builds --log build-1791471215908414412).b922a2d7cdtod3f2ecb91aMerge check at
d3f2ecb9mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791472231294564793(builds --log build-1791472231294564793).d3f2ecb91atoaf63b233dbMerge check at
af63b233mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on g14 as
build-1791473711169449837(builds --log build-1791473711169449837).