Issue 339 follow-ups: only step-ca's root may hold lines, every line end refused, the runtime's data and any .ssh refused #170

Merged
mesh-admin merged 7 commits from fix/339-review-follow-ups into main 2026-10-08 23:55:35 +00:00
Contributor

The review's follow-ups to hq issue 339 (after #168). Do not merge without review.

  • PEM exception narrowed: lines are taken only in module step-ca, top-level key root, when the value is one or more blocks that encoding/pem decodes with label CERTIFICATE and no headers, x509.ParseCertificate parses, and nothing else surrounds them (no \r). Any other module, key, label, depth or non-certificate is refused like any line break. The co-located tests' fake root is replaced by a real self-signed test certificate (key thrown away).
  • Every line end refused: \n \r \v \f NUL U+0085 U+2028 U+2029. Keys with one are quoted in the refusal. (I read the review's two blank characters as U+2028 and U+2029, the line and paragraph separators.)
  • systemPath: /var/spool, /var/lib/docker, /var/lib/containers and /opt are now trees (refused at and below; /opt and /var/spool were refused only as exact paths before), and any path with a .ssh component is refused.

Fail first: on main (522f225) the three new tests failed: another label, base64 that is no certificate, another key, another module and a nested certificate were all accepted; \v \f \u0085 
 
 were accepted; /var/spool/cron, /var/lib/docker…, /var/lib/containers/storage, /opt/app and every .ssh were accepted.

No live layer is affected: the 15 layers with places/accesses are under /var/lib/<module>, /mnt/plex, /storage, /data and /home/restic, and no live layer sets step-ca's root (step-ca's consumers fetch its roots over HTTP). The merge gate composes every layer with the stricter line rule.

merge-check.sh passes locally (race-checked, against a throwaway postgres).

The review's follow-ups to hq issue 339 (after #168). Do not merge without review. - **PEM exception narrowed:** lines are taken only in module `step-ca`, top-level key `root`, when the value is one or more blocks that `encoding/pem` decodes with label `CERTIFICATE` and no headers, `x509.ParseCertificate` parses, and nothing else surrounds them (no `\r`). Any other module, key, label, depth or non-certificate is refused like any line break. The co-located tests' fake root is replaced by a real self-signed test certificate (key thrown away). - **Every line end refused:** `\n \r \v \f NUL U+0085 U+2028 U+2029`. Keys with one are quoted in the refusal. (I read the review's two blank characters as U+2028 and U+2029, the line and paragraph separators.) - **systemPath:** `/var/spool`, `/var/lib/docker`, `/var/lib/containers` and `/opt` are now trees (refused at and below; `/opt` and `/var/spool` were refused only as exact paths before), and any path with a `.ssh` component is refused. **Fail first:** on main (522f225) the three new tests failed: another label, base64 that is no certificate, another key, another module and a nested certificate were all accepted; `\v \f \u0085 
 
` were accepted; `/var/spool/cron`, `/var/lib/docker…`, `/var/lib/containers/storage`, `/opt/app` and every `.ssh` were accepted. No live layer is affected: the 15 layers with `places`/`accesses` are under `/var/lib/<module>`, `/mnt/plex`, `/storage`, `/data` and `/home/restic`, and no live layer sets step-ca's `root` (step-ca's consumers fetch its roots over HTTP). The merge gate composes every layer with the stricter line rule. `merge-check.sh` passes locally (race-checked, against a throwaway postgres).
mesh-admin added 1 commit 2026-10-08 22:29:07 +00:00
Let only the authority's root hold lines, refuse every line end, and keep places off the runtime's data and any .ssh
mesh/delivery superseded: a newer head of the same pull request
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…
mesh/repo-check fail: its merge-check.sh failed: --- FAIL: TestAnUnreadableStoreClearsNothing (0.01s)
1b502a37e0
The review of hq issue 339 found the PEM exception too wide (any module, any
key, any label, anything base64), \v, \f, NEL and the Unicode separators
still let a value end a line in some readers, and the spool, /opt, the
container runtimes' data and an account's .ssh still placeable. Lines are now
taken only in step-ca's root setting, as certificates encoding/pem decodes and
x509 parses; every line end is refused; and those paths are the machine's own.
The test certificate is a real one, made for the tests with its key thrown away.
Author
Contributor

Delivery novox/mesh-controller@0f58602c740f — delivered since 2026-10-09T00:11:14Z

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

Machines

  • mesh-controller on novox: passed — healthy 3 times over 3m39s
  • mesh-controller on the rest running it: sent
  • build-agent on ace: passed — healthy 3 times over 3m33s
  • build-agent on the rest running it: sent
  • route-proxy on ace: passed — healthy 3 times over 3m39s
  • route-proxy on the rest running it: sent

Transitions

  • 2026-10-08 23:45 (new) → proposed (announced): novox/mesh-controller#170's head announced
  • 2026-10-08 23:52 proposed → checked (checked): the verdict names this commit
  • 2026-10-08 23:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-08 23: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 23: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-09 00: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@0f58602c740f` — **delivered** since 2026-10-09T00:11:14Z **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 **Machines** - mesh-controller on novox: passed — healthy 3 times over 3m39s - mesh-controller on the rest running it: sent - build-agent on ace: passed — healthy 3 times over 3m33s - build-agent on the rest running it: sent - route-proxy on ace: passed — healthy 3 times over 3m39s - route-proxy on the rest running it: sent **Transitions** - 2026-10-08 23:45 (new) → proposed (announced): novox/mesh-controller#170's head announced - 2026-10-08 23:52 proposed → checked (checked): the verdict names this commit - 2026-10-08 23:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-08 23: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 23: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-09 00: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`.
Author
Contributor

Merge check at 1b502a37

  • 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: FAIL — its merge-check.sh failed: --- FAIL: TestAnUnreadableStoreClearsNothing (0.01s)

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-1791498555198436098 (builds --log build-1791498555198436098).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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-08T22:22:56Z 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-08T22:22:56Z

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.034s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	192.526s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.055s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.060s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.029s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.232s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.094s
ok  	github.com/novox/mesh-controller/internal/broker	2.744s
ok  	github.com/novox/mesh-controller/internal/builder	2.238s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.927s
==================
WARNING: DATA RACE
Write at 0x00c000133230 by goroutine 257:
  github.com/novox/mesh-controller/internal/conditions.TestAnUnreadableStoreClearsNothing()
      /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store_test.go:202 +0x2ba
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:2036 +0x21c
  testing.(*T).Run.gowrap1()
      /usr/local/go/src/testing/testing.go:2101 +0x38

Previous read at 0x00c000133230 by goroutine 258:
  github.com/novox/mesh-controller/internal/conditions.(*InMemory).Append()
      /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/memory.go:93 +0xb6
  github.com/novox/mesh-controller/internal/conditions.(*Keeper).telling()
      /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:625 +0x4fc
  github.com/novox/mesh-controller/internal/conditions.NewKeeper.gowrap1()
      /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x2e

Goroutine 257 (running) created at:
  testing.(*T).Run()
      /usr/local/go/src/testing/testing.go:2101 +0xb12
  testing.runTests.func1()
      /usr/local/go/src/testing/testing.go:2585 +0x84
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:2036 +0x21c
  testing.runTests()
      /usr/local/go/src/testing/testing.go:2583 +0x9e9
  testing.(*M).Run()
      /usr/local/go/src/testing/testing.go:2443 +0xf4b
  main.main()
      _testmain.go:92 +0x164

Goroutine 258 (running) created at:
  github.com/novox/mesh-controller/internal/conditions.NewKeeper()
      /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x739
  github.com/novox/mesh-controller/internal/conditions.keeper()
      /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store_test.go:21 +0x417
  github.com/novox/mesh-controller/internal/conditions.TestAnUnreadableStoreClearsNothing()
      /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store_test.go:197 +0x3e
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:2036 +0x21c
  testing.(*T).Run.gowrap1()
      /usr/local/go/src/testing/testing.go:2101 +0x38
==================
--- FAIL: TestAnUnreadableStoreClearsNothing (0.01s)
    testing.go:1712: race detected during execution of test
FAIL
FAIL	github.com/novox/mesh-controller/internal/conditions	1.253s
ok  	github.com/novox/mesh-controller/internal/envfile	1.063s
ok  	github.com/novox/mesh-controller/internal/facts	1.061s
ok  	github.com/novox/mesh-controller/internal/identity	4.798s
ok  	github.com/novox/mesh-controller/internal/inventory	84.615s
ok  	github.com/novox/mesh-controller/internal/lease	17.714s
ok  	github.com/novox/mesh-controller/internal/licences	4.369s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.042s
ok  	github.com/novox/mesh-controller/internal/link	53.310s
ok  	github.com/novox/mesh-controller/internal/lint	2.181s
ok  	github.com/novox/mesh-controller/internal/outward	1.082s
ok  	github.com/novox/mesh-controller/internal/overlay	1.092s
ok  	github.com/novox/mesh-controller/internal/secrets	1.563s
ok  	github.com/novox/mesh-controller/internal/store	3.541s
ok  	github.com/novox/mesh-controller/internal/testbus	1.250s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
FAIL
**Merge check** at `1b502a37` - `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`: **FAIL** — its merge-check.sh failed: --- FAIL: TestAnUnreadableStoreClearsNothing (0.01s) **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-1791498555198436098` (`builds --log build-1791498555198436098`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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-08T22:22:56Z 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-08T22:22:56Z 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.034s ok github.com/novox/mesh-controller/cmd/mesh-controller 192.526s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.055s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.060s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.029s ok github.com/novox/mesh-controller/examples/route-proxy 1.232s ok github.com/novox/mesh-controller/internal/artifacts 1.094s ok github.com/novox/mesh-controller/internal/broker 2.744s ok github.com/novox/mesh-controller/internal/builder 2.238s ok github.com/novox/mesh-controller/internal/catalogue 4.927s ================== WARNING: DATA RACE Write at 0x00c000133230 by goroutine 257: github.com/novox/mesh-controller/internal/conditions.TestAnUnreadableStoreClearsNothing() /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store_test.go:202 +0x2ba testing.tRunner() /usr/local/go/src/testing/testing.go:2036 +0x21c testing.(*T).Run.gowrap1() /usr/local/go/src/testing/testing.go:2101 +0x38 Previous read at 0x00c000133230 by goroutine 258: github.com/novox/mesh-controller/internal/conditions.(*InMemory).Append() /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/memory.go:93 +0xb6 github.com/novox/mesh-controller/internal/conditions.(*Keeper).telling() /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:625 +0x4fc github.com/novox/mesh-controller/internal/conditions.NewKeeper.gowrap1() /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x2e Goroutine 257 (running) created at: testing.(*T).Run() /usr/local/go/src/testing/testing.go:2101 +0xb12 testing.runTests.func1() /usr/local/go/src/testing/testing.go:2585 +0x84 testing.tRunner() /usr/local/go/src/testing/testing.go:2036 +0x21c testing.runTests() /usr/local/go/src/testing/testing.go:2583 +0x9e9 testing.(*M).Run() /usr/local/go/src/testing/testing.go:2443 +0xf4b main.main() _testmain.go:92 +0x164 Goroutine 258 (running) created at: github.com/novox/mesh-controller/internal/conditions.NewKeeper() /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x739 github.com/novox/mesh-controller/internal/conditions.keeper() /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store_test.go:21 +0x417 github.com/novox/mesh-controller/internal/conditions.TestAnUnreadableStoreClearsNothing() /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store_test.go:197 +0x3e testing.tRunner() /usr/local/go/src/testing/testing.go:2036 +0x21c testing.(*T).Run.gowrap1() /usr/local/go/src/testing/testing.go:2101 +0x38 ================== --- FAIL: TestAnUnreadableStoreClearsNothing (0.01s) testing.go:1712: race detected during execution of test FAIL FAIL github.com/novox/mesh-controller/internal/conditions 1.253s ok github.com/novox/mesh-controller/internal/envfile 1.063s ok github.com/novox/mesh-controller/internal/facts 1.061s ok github.com/novox/mesh-controller/internal/identity 4.798s ok github.com/novox/mesh-controller/internal/inventory 84.615s ok github.com/novox/mesh-controller/internal/lease 17.714s ok github.com/novox/mesh-controller/internal/licences 4.369s ok github.com/novox/mesh-controller/internal/licences/adapters 1.042s ok github.com/novox/mesh-controller/internal/link 53.310s ok github.com/novox/mesh-controller/internal/lint 2.181s ok github.com/novox/mesh-controller/internal/outward 1.082s ok github.com/novox/mesh-controller/internal/overlay 1.092s ok github.com/novox/mesh-controller/internal/secrets 1.563s ok github.com/novox/mesh-controller/internal/store 3.541s ok github.com/novox/mesh-controller/internal/testbus 1.250s ok github.com/novox/mesh-controller/internal/token 1.015s FAIL ```
jschoubben added 1 commit 2026-10-08 22:38:09 +00:00
Change a test store's failure under its lock, which the keeper's goroutine reads
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…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
0f1e1b09fd
TestAnUnreadableStoreClearsNothing wrote InMemory.Fail and its values unguarded
while the keeper's teller appended to the same store, and the race detector
failed mesh/repo-check on #170 (a test race on main, not the change).
Author
Contributor

Merge check at 0f1e1b09

  • 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-1791499099436590718 (builds --log build-1791499099436590718).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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-08T22:31:56Z 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-08T22:31:56Z

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.048s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	187.195s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.022s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.214s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.050s
ok  	github.com/novox/mesh-controller/internal/broker	2.461s
ok  	github.com/novox/mesh-controller/internal/builder	1.798s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.208s
ok  	github.com/novox/mesh-controller/internal/conditions	2.108s
ok  	github.com/novox/mesh-controller/internal/envfile	1.028s
ok  	github.com/novox/mesh-controller/internal/facts	1.030s
ok  	github.com/novox/mesh-controller/internal/identity	3.993s
ok  	github.com/novox/mesh-controller/internal/inventory	71.243s
ok  	github.com/novox/mesh-controller/internal/lease	17.667s
ok  	github.com/novox/mesh-controller/internal/licences	3.641s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.011s
ok  	github.com/novox/mesh-controller/internal/link	51.322s
ok  	github.com/novox/mesh-controller/internal/lint	1.873s
ok  	github.com/novox/mesh-controller/internal/outward	1.033s
ok  	github.com/novox/mesh-controller/internal/overlay	1.022s
ok  	github.com/novox/mesh-controller/internal/secrets	1.390s
ok  	github.com/novox/mesh-controller/internal/store	3.159s
ok  	github.com/novox/mesh-controller/internal/testbus	1.173s
ok  	github.com/novox/mesh-controller/internal/token	1.017s
**Merge check** at `0f1e1b09` - `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-1791499099436590718` (`builds --log build-1791499099436590718`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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-08T22:31:56Z 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-08T22:31:56Z 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.048s ok github.com/novox/mesh-controller/cmd/mesh-controller 187.195s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.022s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.012s ok github.com/novox/mesh-controller/examples/route-proxy 1.214s ok github.com/novox/mesh-controller/internal/artifacts 1.050s ok github.com/novox/mesh-controller/internal/broker 2.461s ok github.com/novox/mesh-controller/internal/builder 1.798s ok github.com/novox/mesh-controller/internal/catalogue 4.208s ok github.com/novox/mesh-controller/internal/conditions 2.108s ok github.com/novox/mesh-controller/internal/envfile 1.028s ok github.com/novox/mesh-controller/internal/facts 1.030s ok github.com/novox/mesh-controller/internal/identity 3.993s ok github.com/novox/mesh-controller/internal/inventory 71.243s ok github.com/novox/mesh-controller/internal/lease 17.667s ok github.com/novox/mesh-controller/internal/licences 3.641s ok github.com/novox/mesh-controller/internal/licences/adapters 1.011s ok github.com/novox/mesh-controller/internal/link 51.322s ok github.com/novox/mesh-controller/internal/lint 1.873s ok github.com/novox/mesh-controller/internal/outward 1.033s ok github.com/novox/mesh-controller/internal/overlay 1.022s ok github.com/novox/mesh-controller/internal/secrets 1.390s ok github.com/novox/mesh-controller/internal/store 3.159s ok github.com/novox/mesh-controller/internal/testbus 1.173s ok github.com/novox/mesh-controller/internal/token 1.017s ```
jschoubben added 2 commits 2026-10-08 22:57:12 +00:00
Merged beside #148 the two would not compile (SetFail declared twice, m.Fail undefined). #148 lands on its own.
Keep the mesh's trust anchors at the terminal, refuse containerd's tree, and read a found directory as a wait
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…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
ec7b8bcd58
The review of #170: step-ca's root, roots and path and the identity
provider's issuer are what every consumer trusts, and any caller of the
settings verb could replace them; they are now terminal keys like places and
accesses (hq issue 339). /var/lib/containerd joins the runtimes' data. And a
directory the node-engine uses as found failed its module's gate and rolled
its builds back; found before the send, it is now a wait for a person the
gate passes with, as a relogin is (ADR 0254), and only one the send itself
found holds the module.
Author
Contributor

Merge check at ec7b8bcd

  • 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-1791500248202624874 (builds --log build-1791500248202624874).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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-08T22:54:48Z 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-08T22:54:48Z

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.035s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	188.998s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.016s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.020s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.017s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.218s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.038s
ok  	github.com/novox/mesh-controller/internal/broker	2.583s
ok  	github.com/novox/mesh-controller/internal/builder	2.596s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.104s
ok  	github.com/novox/mesh-controller/internal/conditions	2.112s
ok  	github.com/novox/mesh-controller/internal/envfile	1.021s
ok  	github.com/novox/mesh-controller/internal/facts	1.024s
ok  	github.com/novox/mesh-controller/internal/identity	4.509s
ok  	github.com/novox/mesh-controller/internal/inventory	71.841s
ok  	github.com/novox/mesh-controller/internal/lease	17.692s
ok  	github.com/novox/mesh-controller/internal/licences	4.204s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.011s
ok  	github.com/novox/mesh-controller/internal/link	50.736s
ok  	github.com/novox/mesh-controller/internal/lint	1.865s
ok  	github.com/novox/mesh-controller/internal/outward	1.032s
ok  	github.com/novox/mesh-controller/internal/overlay	1.021s
ok  	github.com/novox/mesh-controller/internal/secrets	1.395s
ok  	github.com/novox/mesh-controller/internal/store	3.183s
ok  	github.com/novox/mesh-controller/internal/testbus	1.171s
ok  	github.com/novox/mesh-controller/internal/token	1.018s
**Merge check** at `ec7b8bcd` - `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-1791500248202624874` (`builds --log build-1791500248202624874`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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-08T22:54:48Z 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-08T22:54:48Z 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.035s ok github.com/novox/mesh-controller/cmd/mesh-controller 188.998s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.016s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.020s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.017s ok github.com/novox/mesh-controller/examples/route-proxy 1.218s ok github.com/novox/mesh-controller/internal/artifacts 1.038s ok github.com/novox/mesh-controller/internal/broker 2.583s ok github.com/novox/mesh-controller/internal/builder 2.596s ok github.com/novox/mesh-controller/internal/catalogue 4.104s ok github.com/novox/mesh-controller/internal/conditions 2.112s ok github.com/novox/mesh-controller/internal/envfile 1.021s ok github.com/novox/mesh-controller/internal/facts 1.024s ok github.com/novox/mesh-controller/internal/identity 4.509s ok github.com/novox/mesh-controller/internal/inventory 71.841s ok github.com/novox/mesh-controller/internal/lease 17.692s ok github.com/novox/mesh-controller/internal/licences 4.204s ok github.com/novox/mesh-controller/internal/licences/adapters 1.011s ok github.com/novox/mesh-controller/internal/link 50.736s ok github.com/novox/mesh-controller/internal/lint 1.865s ok github.com/novox/mesh-controller/internal/outward 1.032s ok github.com/novox/mesh-controller/internal/overlay 1.021s ok github.com/novox/mesh-controller/internal/secrets 1.395s ok github.com/novox/mesh-controller/internal/store 3.183s ok github.com/novox/mesh-controller/internal/testbus 1.171s ok github.com/novox/mesh-controller/internal/token 1.018s ```
jschoubben added 1 commit 2026-10-08 23:23:47 +00:00
Derive the terminal's settings from what a module serves and which files it trusts; a found directory is its own condition
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…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
b9fc09c375
The third review of #170 (hq issue 339): a setting overrides any key a
provider serves, so any caller of the settings verb could move a database's
port, a registry's port or an issuer to a listener of its own and collect
what consumers present. TerminalKeys now derives from the manifest: places,
accesses, every served key and every setting a served value asks for, and
every setting a file marked `trusted` asks for. `trusted` is the catalogue's
word, taken out before the declaration; `module check` warns of a file that
asks for a setting without saying, and refuses it from 2026-10-30. The hand
list is gone. A directory used as found is now its own condition kind, the
operator's, never urgent, and the gate exempts it where it exempts a relogin.
Author
Contributor

Merge check at b9fc09c3

  • 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-1791501851110737152 (builds --log build-1791501851110737152).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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
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-08T23:23:48Z 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-08T23:23:48Z

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.058s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	214.276s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.017s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.022s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.018s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.133s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.054s
ok  	github.com/novox/mesh-controller/internal/broker	2.989s
ok  	github.com/novox/mesh-controller/internal/builder	2.601s
ok  	github.com/novox/mesh-controller/internal/catalogue	5.112s
ok  	github.com/novox/mesh-controller/internal/conditions	2.224s
ok  	github.com/novox/mesh-controller/internal/envfile	1.027s
ok  	github.com/novox/mesh-controller/internal/facts	1.035s
ok  	github.com/novox/mesh-controller/internal/identity	4.805s
ok  	github.com/novox/mesh-controller/internal/inventory	91.480s
ok  	github.com/novox/mesh-controller/internal/lease	17.692s
ok  	github.com/novox/mesh-controller/internal/licences	4.359s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.014s
ok  	github.com/novox/mesh-controller/internal/link	53.893s
ok  	github.com/novox/mesh-controller/internal/lint	2.126s
ok  	github.com/novox/mesh-controller/internal/outward	1.039s
ok  	github.com/novox/mesh-controller/internal/overlay	1.029s
ok  	github.com/novox/mesh-controller/internal/secrets	1.453s
ok  	github.com/novox/mesh-controller/internal/store	3.322s
ok  	github.com/novox/mesh-controller/internal/testbus	1.194s
ok  	github.com/novox/mesh-controller/internal/token	1.014s
**Merge check** at `b9fc09c3` - `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-1791501851110737152` (`builds --log build-1791501851110737152`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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 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-08T23:23:48Z 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-08T23:23:48Z 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.058s ok github.com/novox/mesh-controller/cmd/mesh-controller 214.276s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.017s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.022s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.018s ok github.com/novox/mesh-controller/examples/route-proxy 1.133s ok github.com/novox/mesh-controller/internal/artifacts 1.054s ok github.com/novox/mesh-controller/internal/broker 2.989s ok github.com/novox/mesh-controller/internal/builder 2.601s ok github.com/novox/mesh-controller/internal/catalogue 5.112s ok github.com/novox/mesh-controller/internal/conditions 2.224s ok github.com/novox/mesh-controller/internal/envfile 1.027s ok github.com/novox/mesh-controller/internal/facts 1.035s ok github.com/novox/mesh-controller/internal/identity 4.805s ok github.com/novox/mesh-controller/internal/inventory 91.480s ok github.com/novox/mesh-controller/internal/lease 17.692s ok github.com/novox/mesh-controller/internal/licences 4.359s ok github.com/novox/mesh-controller/internal/licences/adapters 1.014s ok github.com/novox/mesh-controller/internal/link 53.893s ok github.com/novox/mesh-controller/internal/lint 2.126s ok github.com/novox/mesh-controller/internal/outward 1.039s ok github.com/novox/mesh-controller/internal/overlay 1.029s ok github.com/novox/mesh-controller/internal/secrets 1.453s ok github.com/novox/mesh-controller/internal/store 3.322s ok github.com/novox/mesh-controller/internal/testbus 1.194s ok github.com/novox/mesh-controller/internal/token 1.014s ```
jschoubben added 1 commit 2026-10-08 23:37:46 +00:00
Refuse a file that asks for a setting without saying whether it is trusted from 2026-10-10
mesh/delivery superseded: a newer head of the same pull request
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…
mesh/repo-check pass: its merge-check.sh passed
c3ae3f3e09
The operator's date (hq issue 339). A test holds the warning before it and the
refusal from it.
jschoubben added 1 commit 2026-10-08 23:44:53 +00:00
Count a file that says nothing as trusted, and drop the refusal date
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…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
0f58602c74
The fourth review (hq issue 339): the safe reading of a file that asks for a
setting and does not say is that root or a consumer trusts it, so its
settings are the terminal's; `"trusted": false` is the opt-out. With that,
nothing unsafe is left to refuse: `module check` lists and counts the
unmarked files and never refuses them.
Author
Contributor

Merge check at c3ae3f3e

  • 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-1791502667821291286 (builds --log build-1791502667821291286).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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
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-08T23:38:08Z 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-08T23:38:08Z

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.037s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	166.036s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.013s
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.107s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.041s
ok  	github.com/novox/mesh-controller/internal/broker	2.531s
ok  	github.com/novox/mesh-controller/internal/builder	1.838s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.308s
ok  	github.com/novox/mesh-controller/internal/conditions	2.177s
ok  	github.com/novox/mesh-controller/internal/envfile	1.053s
ok  	github.com/novox/mesh-controller/internal/facts	1.075s
ok  	github.com/novox/mesh-controller/internal/identity	4.065s
ok  	github.com/novox/mesh-controller/internal/inventory	71.067s
ok  	github.com/novox/mesh-controller/internal/lease	17.678s
ok  	github.com/novox/mesh-controller/internal/licences	3.715s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.048s
ok  	github.com/novox/mesh-controller/internal/link	50.742s
ok  	github.com/novox/mesh-controller/internal/lint	1.985s
ok  	github.com/novox/mesh-controller/internal/outward	1.096s
ok  	github.com/novox/mesh-controller/internal/overlay	1.065s
ok  	github.com/novox/mesh-controller/internal/secrets	1.435s
ok  	github.com/novox/mesh-controller/internal/store	3.304s
ok  	github.com/novox/mesh-controller/internal/testbus	1.175s
ok  	github.com/novox/mesh-controller/internal/token	1.016s
**Merge check** at `c3ae3f3e` - `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-1791502667821291286` (`builds --log build-1791502667821291286`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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 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-08T23:38:08Z 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-08T23:38:08Z 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.037s ok github.com/novox/mesh-controller/cmd/mesh-controller 166.036s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.013s 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.107s ok github.com/novox/mesh-controller/internal/artifacts 1.041s ok github.com/novox/mesh-controller/internal/broker 2.531s ok github.com/novox/mesh-controller/internal/builder 1.838s ok github.com/novox/mesh-controller/internal/catalogue 4.308s ok github.com/novox/mesh-controller/internal/conditions 2.177s ok github.com/novox/mesh-controller/internal/envfile 1.053s ok github.com/novox/mesh-controller/internal/facts 1.075s ok github.com/novox/mesh-controller/internal/identity 4.065s ok github.com/novox/mesh-controller/internal/inventory 71.067s ok github.com/novox/mesh-controller/internal/lease 17.678s ok github.com/novox/mesh-controller/internal/licences 3.715s ok github.com/novox/mesh-controller/internal/licences/adapters 1.048s ok github.com/novox/mesh-controller/internal/link 50.742s ok github.com/novox/mesh-controller/internal/lint 1.985s ok github.com/novox/mesh-controller/internal/outward 1.096s ok github.com/novox/mesh-controller/internal/overlay 1.065s ok github.com/novox/mesh-controller/internal/secrets 1.435s ok github.com/novox/mesh-controller/internal/store 3.304s ok github.com/novox/mesh-controller/internal/testbus 1.175s ok github.com/novox/mesh-controller/internal/token 1.016s ```
Author
Contributor

Merge check at 0f58602c

  • 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-1791503123620043752 (builds --log build-1791503123620043752).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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
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-08T23:38:08Z 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-08T23:38:08Z

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	188.265s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.016s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.201s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.041s
ok  	github.com/novox/mesh-controller/internal/broker	2.466s
ok  	github.com/novox/mesh-controller/internal/builder	1.791s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.197s
ok  	github.com/novox/mesh-controller/internal/conditions	2.109s
ok  	github.com/novox/mesh-controller/internal/envfile	1.030s
ok  	github.com/novox/mesh-controller/internal/facts	1.032s
ok  	github.com/novox/mesh-controller/internal/identity	4.047s
ok  	github.com/novox/mesh-controller/internal/inventory	71.023s
ok  	github.com/novox/mesh-controller/internal/lease	17.714s
ok  	github.com/novox/mesh-controller/internal/licences	3.637s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.012s
ok  	github.com/novox/mesh-controller/internal/link	50.763s
ok  	github.com/novox/mesh-controller/internal/lint	1.861s
ok  	github.com/novox/mesh-controller/internal/outward	1.035s
ok  	github.com/novox/mesh-controller/internal/overlay	1.029s
ok  	github.com/novox/mesh-controller/internal/secrets	1.420s
ok  	github.com/novox/mesh-controller/internal/store	3.135s
ok  	github.com/novox/mesh-controller/internal/testbus	1.171s
ok  	github.com/novox/mesh-controller/internal/token	1.017s
**Merge check** at `0f58602c` - `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-1791503123620043752` (`builds --log build-1791503123620043752`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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 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-08T23:38:08Z 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-08T23:38:08Z 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 188.265s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.016s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.012s ok github.com/novox/mesh-controller/examples/route-proxy 1.201s ok github.com/novox/mesh-controller/internal/artifacts 1.041s ok github.com/novox/mesh-controller/internal/broker 2.466s ok github.com/novox/mesh-controller/internal/builder 1.791s ok github.com/novox/mesh-controller/internal/catalogue 4.197s ok github.com/novox/mesh-controller/internal/conditions 2.109s ok github.com/novox/mesh-controller/internal/envfile 1.030s ok github.com/novox/mesh-controller/internal/facts 1.032s ok github.com/novox/mesh-controller/internal/identity 4.047s ok github.com/novox/mesh-controller/internal/inventory 71.023s ok github.com/novox/mesh-controller/internal/lease 17.714s ok github.com/novox/mesh-controller/internal/licences 3.637s ok github.com/novox/mesh-controller/internal/licences/adapters 1.012s ok github.com/novox/mesh-controller/internal/link 50.763s ok github.com/novox/mesh-controller/internal/lint 1.861s ok github.com/novox/mesh-controller/internal/outward 1.035s ok github.com/novox/mesh-controller/internal/overlay 1.029s ok github.com/novox/mesh-controller/internal/secrets 1.420s ok github.com/novox/mesh-controller/internal/store 3.135s ok github.com/novox/mesh-controller/internal/testbus 1.171s ok github.com/novox/mesh-controller/internal/token 1.017s ```
mesh-admin merged commit 155819f307 into main 2026-10-08 23:55:35 +00:00
mesh-admin deleted branch fix/339-review-follow-ups 2026-10-08 23:55:36 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#170