Run a verb from the controller's own running image; refuse what it cannot run as a handover (hq issue 289) #108

Merged
mesh-admin merged 1 commits from fix/a-verb-survives-the-handover into main 2026-10-07 01:05:42 +00:00
Contributor

novox/hq issue 289. On 2026-10-07 a controller update was rolling out on the control node. A verb answered by the old controller failed with fork/exec <daemon root>/.witness/mesh-controller/previous/mesh-controller: permission denied. The node-engine's witness had moved the running build into a 0700 root directory, and it later deletes that directory. runVerb exec'd os.Executable(), which returns the path the file has now.

  • runVerb runs /proc/self/exe on Linux (selfCommand, ownImage). That path stays valid while the process lives, after a rename or a delete. argv[0] stays the path the process started from.
  • A verb whose image cannot be started (EACCES/ENOENT), or one that arrives after serve's context has ended (signal or lost lease), is refused with link.ErrHandingOver. serveCall marks that answer "retry": "handing-over", and mesh-tools asks once more (mesh-tools PR on the same branch name).

Tests:

  • TestAVerbRunsWhileItsBuildIsMovedOrDeleted copies the test binary, starts it, moves it into a closed directory (or deletes it), then runs a verb. With os.Executable() it fails with the live error (permission denied / no such file). With this change it passes.
  • TestAVerbThatCannotRunIsRefusedAsAHandover and TestAHandoverRefusalIsMarkedRetryable cover the refusal.

mesh-controller check-here: merge-gate PASS (4 of 4 compose), repo-check PASS.

novox/hq issue 289. On 2026-10-07 a controller update was rolling out on the control node. A verb answered by the old controller failed with `fork/exec <daemon root>/.witness/mesh-controller/previous/mesh-controller: permission denied`. The node-engine's witness had moved the running build into a 0700 root directory, and it later deletes that directory. `runVerb` exec'd `os.Executable()`, which returns the path the file has now. - `runVerb` runs `/proc/self/exe` on Linux (`selfCommand`, `ownImage`). That path stays valid while the process lives, after a rename or a delete. `argv[0]` stays the path the process started from. - A verb whose image cannot be started (EACCES/ENOENT), or one that arrives after `serve`'s context has ended (signal or lost lease), is refused with `link.ErrHandingOver`. `serveCall` marks that answer `"retry": "handing-over"`, and mesh-tools asks once more (mesh-tools PR on the same branch name). Tests: - `TestAVerbRunsWhileItsBuildIsMovedOrDeleted` copies the test binary, starts it, moves it into a closed directory (or deletes it), then runs a verb. With `os.Executable()` it fails with the live error (permission denied / no such file). With this change it passes. - `TestAVerbThatCannotRunIsRefusedAsAHandover` and `TestAHandoverRefusalIsMarkedRetryable` cover the refusal. `mesh-controller check-here`: merge-gate PASS (4 of 4 compose), repo-check PASS.
Author
Contributor

Delivery novox/mesh-controller@6c7af5c63f88 — delivered since 2026-10-07T01:20:01Z

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 3m38s
  • mesh-controller on the rest running it: sent
  • build-agent on ace: passed — healthy 3 times over 3m39s
  • build-agent on the rest running it: sent
  • route-proxy on ace: passed — healthy 3 times over 3m13s
  • route-proxy on the rest running it: sent

Transitions

  • 2026-10-07 00:45 (new) → proposed (announced): novox/mesh-controller#108's head announced
  • 2026-10-07 00:51 proposed → checked (checked): the verdict names this commit
  • 2026-10-07 00:51 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-07 01:06 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-07 01:06 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-07 01:20 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@6c7af5c63f88` — **delivered** since 2026-10-07T01:20:01Z **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 3m38s - mesh-controller on the rest running it: sent - build-agent on ace: passed — healthy 3 times over 3m39s - build-agent on the rest running it: sent - route-proxy on ace: passed — healthy 3 times over 3m13s - route-proxy on the rest running it: sent **Transitions** - 2026-10-07 00:45 (new) → proposed (announced): novox/mesh-controller#108's head announced - 2026-10-07 00:51 proposed → checked (checked): the verdict names this commit - 2026-10-07 00:51 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-07 01:06 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-07 01:06 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-07 01:20 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 9409bcec

  • 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

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 45 tool(s)
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-07T00:21:01Z 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-07T00:21:01Z

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-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	378.175s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.038s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.038s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.040s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.127s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.062s
ok  	github.com/novox/mesh-controller/internal/broker	2.385s
ok  	github.com/novox/mesh-controller/internal/builder	1.301s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.501s
ok  	github.com/novox/mesh-controller/internal/conditions	1.988s
ok  	github.com/novox/mesh-controller/internal/envfile	1.041s
ok  	github.com/novox/mesh-controller/internal/facts	1.040s
ok  	github.com/novox/mesh-controller/internal/identity	40.798s
ok  	github.com/novox/mesh-controller/internal/inventory	242.454s
ok  	github.com/novox/mesh-controller/internal/lease	17.674s
ok  	github.com/novox/mesh-controller/internal/licences	35.517s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.048s
ok  	github.com/novox/mesh-controller/internal/link	76.455s
ok  	github.com/novox/mesh-controller/internal/lint	1.746s
ok  	github.com/novox/mesh-controller/internal/outward	1.070s
ok  	github.com/novox/mesh-controller/internal/overlay	1.053s
ok  	github.com/novox/mesh-controller/internal/secrets	1.395s
ok  	github.com/novox/mesh-controller/internal/store	10.081s
ok  	github.com/novox/mesh-controller/internal/testbus	1.201s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
**Merge check** at `9409bcec` - `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 **Change 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-1791332872633056727` (`builds --log build-1791332872633056727`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 45 tool(s) 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-07T00:21:01Z 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-07T00:21:01Z 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-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 378.175s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.038s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.038s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.040s ok github.com/novox/mesh-controller/examples/route-proxy 1.127s ok github.com/novox/mesh-controller/internal/artifacts 1.062s ok github.com/novox/mesh-controller/internal/broker 2.385s ok github.com/novox/mesh-controller/internal/builder 1.301s ok github.com/novox/mesh-controller/internal/catalogue 3.501s ok github.com/novox/mesh-controller/internal/conditions 1.988s ok github.com/novox/mesh-controller/internal/envfile 1.041s ok github.com/novox/mesh-controller/internal/facts 1.040s ok github.com/novox/mesh-controller/internal/identity 40.798s ok github.com/novox/mesh-controller/internal/inventory 242.454s ok github.com/novox/mesh-controller/internal/lease 17.674s ok github.com/novox/mesh-controller/internal/licences 35.517s ok github.com/novox/mesh-controller/internal/licences/adapters 1.048s ok github.com/novox/mesh-controller/internal/link 76.455s ok github.com/novox/mesh-controller/internal/lint 1.746s ok github.com/novox/mesh-controller/internal/outward 1.070s ok github.com/novox/mesh-controller/internal/overlay 1.053s ok github.com/novox/mesh-controller/internal/secrets 1.395s ok github.com/novox/mesh-controller/internal/store 10.081s ok github.com/novox/mesh-controller/internal/testbus 1.201s ok github.com/novox/mesh-controller/internal/token 1.015s ```
jschoubben added 1 commit 2026-10-07 00:45:40 +00:00
Run a verb from the controller's own running image, and refuse what it cannot run as a handover (hq issue 289)
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
6c7af5c63f
The witness moves a running build aside into a directory the controller's user
cannot enter, then deletes it; a verb exec'd from os.Executable() in that window
failed with permission denied. /proc/self/exe stays valid while the process lives.
A verb that still cannot start, or arrives while the controller stops, is refused
with link.ErrHandingOver and marked retry: handing-over.
jschoubben force-pushed fix/a-verb-survives-the-handover from 9409bcec4b to 6c7af5c63f 2026-10-07 00:45:40 +00:00 Compare
Author
Contributor

Merge check at 6c7af5c6

  • 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

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 45 tool(s)
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-07T00:39: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-07T00:39: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-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.028s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	190.199s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.009s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.015s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.008s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.182s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.043s
ok  	github.com/novox/mesh-controller/internal/broker	2.381s
ok  	github.com/novox/mesh-controller/internal/builder	1.244s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.563s
ok  	github.com/novox/mesh-controller/internal/conditions	1.952s
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	6.037s
ok  	github.com/novox/mesh-controller/internal/inventory	109.197s
ok  	github.com/novox/mesh-controller/internal/lease	17.692s
ok  	github.com/novox/mesh-controller/internal/licences	5.361s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.006s
ok  	github.com/novox/mesh-controller/internal/link	52.457s
ok  	github.com/novox/mesh-controller/internal/lint	1.753s
ok  	github.com/novox/mesh-controller/internal/outward	1.031s
ok  	github.com/novox/mesh-controller/internal/overlay	1.018s
ok  	github.com/novox/mesh-controller/internal/secrets	1.393s
ok  	github.com/novox/mesh-controller/internal/store	3.897s
ok  	github.com/novox/mesh-controller/internal/testbus	1.172s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
**Merge check** at `6c7af5c6` - `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 **Change 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-1791333956048314747` (`builds --log build-1791333956048314747`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 45 tool(s) 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-07T00:39: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-07T00:39: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-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.028s ok github.com/novox/mesh-controller/cmd/mesh-controller 190.199s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.009s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.015s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.008s ok github.com/novox/mesh-controller/examples/route-proxy 1.182s ok github.com/novox/mesh-controller/internal/artifacts 1.043s ok github.com/novox/mesh-controller/internal/broker 2.381s ok github.com/novox/mesh-controller/internal/builder 1.244s ok github.com/novox/mesh-controller/internal/catalogue 3.563s ok github.com/novox/mesh-controller/internal/conditions 1.952s 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 6.037s ok github.com/novox/mesh-controller/internal/inventory 109.197s ok github.com/novox/mesh-controller/internal/lease 17.692s ok github.com/novox/mesh-controller/internal/licences 5.361s ok github.com/novox/mesh-controller/internal/licences/adapters 1.006s ok github.com/novox/mesh-controller/internal/link 52.457s ok github.com/novox/mesh-controller/internal/lint 1.753s ok github.com/novox/mesh-controller/internal/outward 1.031s ok github.com/novox/mesh-controller/internal/overlay 1.018s ok github.com/novox/mesh-controller/internal/secrets 1.393s ok github.com/novox/mesh-controller/internal/store 3.897s ok github.com/novox/mesh-controller/internal/testbus 1.172s ok github.com/novox/mesh-controller/internal/token 1.015s ```
mesh-admin merged commit 582f4a082a into main 2026-10-07 01:05:42 +00:00
mesh-admin deleted branch fix/a-verb-survives-the-handover 2026-10-07 01:05:42 +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#108