Serve the uplink seat's verbs from both of its holders (hq ADR 0241 rule 8) #107

Merged
mesh-admin merged 1 commits from feat/node-uplink-verbs into main 2026-10-07 21:34:34 +00:00
Contributor

networkmanager and systemd-networkd each gain a Go bundle (cmd/uplink-tools) serving node-uplink.resolvers and node-uplink.links, read-only. uplink.go/main.go/tests are one text in both holders (copies_test.go holds them together); manager.go is each holder's own (nmcli device show / networkctl status --all).

The claim does not name serves yet: the live controller does not promise these verbs, and until mesh-controller (uplink verbs, staged) rolls out the runtime logs them as not served — harmless. Once it is live, the verbs are served on every machine.

Verified read-only live on g14 (resolver file read as the mesh's; links with the default route and NetworkManager's resolvers). check-here: merge-gate PASS (4 of 4), repo-check PASS (both modules tested). Upgrade policy of both modules is record: a person pushes.

networkmanager and systemd-networkd each gain a Go bundle (cmd/uplink-tools) serving node-uplink.resolvers and node-uplink.links, read-only. uplink.go/main.go/tests are one text in both holders (copies_test.go holds them together); manager.go is each holder's own (nmcli device show / networkctl status --all). The claim does not name `serves` yet: the live controller does not promise these verbs, and until mesh-controller (uplink verbs, staged) rolls out the runtime logs them as not served — harmless. Once it is live, the verbs are served on every machine. Verified read-only live on g14 (resolver file read as the mesh's; links with the default route and NetworkManager's resolvers). check-here: merge-gate PASS (4 of 4), repo-check PASS (both modules tested). Upgrade policy of both modules is record: a person pushes.
mesh-admin added 1 commit 2026-10-07 17:30:29 +00:00
Serve the uplink seat's verbs from both of its holders (hq ADR 0241)
mesh/merge-gate pass: builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person; every machine composes with the change as…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/node-uplink-verbs merged: every member is merged
c619a672a3
What a machine resolves through had no tool: the resolver file and who
wrote it, and every link with its default route and the resolvers its
manager knows. Each holder serves the same two node-uplink verbs; the
reading is one text carried by both, held to it by a test, and only
asking the manager for a link's names is each holder's own.
Author
Contributor

Delivery novox/mesh-catalog@c619a672a364 — delivered since 2026-10-07T21:35:41Z

Delivery plan — builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person

  • tier 0: networkmanager, systemd-networkd
  • ace: waits for a person: networkmanager
  • g14: waits for a person: networkmanager
  • novox: waits for a person: systemd-networkd
  • shanks: waits for a person: networkmanager
  • networkmanager waits for a person: its policy records (module)
  • systemd-networkd waits for a person: its policy records (module)

Group feat/node-uplink-verbs, in order: novox/mesh-controller@bf11a8baac → novox/mesh-catalog@c619a672a3

Transitions

  • 2026-10-07 17:30 (new) → proposed (announced): novox/mesh-catalog#107's head announced
  • 2026-10-07 17:32 proposed → checked (checked): the verdict names this commit
  • 2026-10-07 17:32 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-07 20:18 ready → proposed (recheck): main moved a lot since 17:32 UTC (words check, systemd-resolved); recheck before merging
  • 2026-10-07 20:20 proposed → checked (checked): the verdict names this commit
  • 2026-10-07 20:20 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-07 21:34 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 21:35 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 21:35 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-catalog@c619a672a364` — **delivered** since 2026-10-07T21:35:41Z **Delivery plan** — builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person - tier 0: networkmanager, systemd-networkd - ace: waits for a person: networkmanager - g14: waits for a person: networkmanager - novox: waits for a person: systemd-networkd - shanks: waits for a person: networkmanager - networkmanager waits for a person: its policy records (module) - systemd-networkd waits for a person: its policy records (module) **Group** `feat/node-uplink-verbs`, in order: novox/mesh-controller@bf11a8baacda → novox/mesh-catalog@c619a672a364 - novox/mesh-controller@bf11a8baacda before novox/mesh-catalog@c619a672a364: built by - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Transitions** - 2026-10-07 17:30 (new) → proposed (announced): novox/mesh-catalog#107's head announced - 2026-10-07 17:32 proposed → checked (checked): the verdict names this commit - 2026-10-07 17:32 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-07 20:18 ready → proposed (recheck): main moved a lot since 17:32 UTC (words check, systemd-resolved); recheck before merging - 2026-10-07 20:20 proposed → checked (checked): the verdict names this commit - 2026-10-07 20:20 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-07 21:34 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 21:35 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 21:35 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 c619a672

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: networkmanager, systemd-networkd)
  • mesh/repo-check: PASS — its merge-check.sh passed

Change plan — builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person

  • tier 0: networkmanager, systemd-networkd
  • ace: waits for a person: networkmanager
  • g14: waits for a person: networkmanager
  • novox: waits for a person: systemd-networkd
  • shanks: waits for a person: networkmanager
  • networkmanager waits for a person: its policy records (module)
  • systemd-networkd waits for a person: its policy records (module)

Run by the build seat on g14 as build-1791394257625511795 (builds --log build-1791394257625511795).

--- the gate: networkmanager, systemd-networkd
networkmanager: ok
systemd-networkd: ok
long-running resources without health: 0
2 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 2 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T17:23:39Z 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-07T17:23:39Z

modules the change moves:
  - networkmanager (changed)
  - systemd-networkd (changed)

machines:
  - a machine (f35): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools)
  - holds mesh-dns-resolver (idt): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools)
  - 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; the change adds 1 resource(s) and removes 0 (+archive:systemd-networkd.bundle-tools)
  - a machine (yvbpsm): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools)

a merge would rebuild 2 module(s) in 1 tier(s): networkmanager, systemd-networkd
--- its merge-check.sh (go toolchain)
long-running resources without health: 70, as kept
testing modules/networkmanager
ok  	networkmanager/cmd/uplink-tools	1.014s
testing modules/systemd-networkd
ok  	systemd-networkd/cmd/uplink-tools	1.013s
**Merge check** at `c619a672` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: networkmanager, systemd-networkd) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Change plan** — builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person - tier 0: networkmanager, systemd-networkd - ace: waits for a person: networkmanager - g14: waits for a person: networkmanager - novox: waits for a person: systemd-networkd - shanks: waits for a person: networkmanager - networkmanager waits for a person: its policy records (module) - systemd-networkd waits for a person: its policy records (module) Run by the build seat on g14 as `build-1791394257625511795` (`builds --log build-1791394257625511795`). ``` --- the gate: networkmanager, systemd-networkd networkmanager: ok systemd-networkd: ok long-running resources without health: 0 2 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 2 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T17:23:39Z 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-07T17:23:39Z modules the change moves: - networkmanager (changed) - systemd-networkd (changed) machines: - a machine (f35): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools) - holds mesh-dns-resolver (idt): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools) - 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; the change adds 1 resource(s) and removes 0 (+archive:systemd-networkd.bundle-tools) - a machine (yvbpsm): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools) a merge would rebuild 2 module(s) in 1 tier(s): networkmanager, systemd-networkd --- its merge-check.sh (go toolchain) long-running resources without health: 70, as kept testing modules/networkmanager ok networkmanager/cmd/uplink-tools 1.014s testing modules/systemd-networkd ok systemd-networkd/cmd/uplink-tools 1.013s ```
Author
Contributor

Merge check at c619a672

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: networkmanager, systemd-networkd)
  • mesh/repo-check: PASS — its merge-check.sh passed

Delivery plan — builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person

  • tier 0: networkmanager, systemd-networkd
  • ace: waits for a person: networkmanager
  • g14: waits for a person: networkmanager
  • novox: waits for a person: systemd-networkd
  • shanks: waits for a person: networkmanager
  • networkmanager waits for a person: its policy records (module)
  • systemd-networkd waits for a person: its policy records (module)

Run by the build seat on shanks as build-1791404302356635277 (builds --log build-1791404302356635277).

--- the gate: networkmanager, systemd-networkd
networkmanager: ok
systemd-networkd: ok
long-running resources without health: 0
2 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 2 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T20:17:57Z 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-07T20:17:57Z

modules the change moves:
  - networkmanager (changed)
  - systemd-networkd (changed)

machines:
  - a machine (f35): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools)
  - holds mesh-dns-resolver (idt): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools)
  - 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; the change adds 1 resource(s) and removes 0 (+archive:systemd-networkd.bundle-tools)
  - a machine (yvbpsm): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools)

a merge would rebuild 2 module(s) in 1 tier(s): networkmanager, systemd-networkd
--- its merge-check.sh (go toolchain)
long-running resources without health: 70, as kept
testing modules/networkmanager
ok  	networkmanager/cmd/uplink-tools	1.011s
testing modules/systemd-networkd
ok  	systemd-networkd/cmd/uplink-tools	1.011s
**Merge check** at `c619a672` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: networkmanager, systemd-networkd) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Delivery plan** — builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person - tier 0: networkmanager, systemd-networkd - ace: waits for a person: networkmanager - g14: waits for a person: networkmanager - novox: waits for a person: systemd-networkd - shanks: waits for a person: networkmanager - networkmanager waits for a person: its policy records (module) - systemd-networkd waits for a person: its policy records (module) Run by the build seat on shanks as `build-1791404302356635277` (`builds --log build-1791404302356635277`). ``` --- the gate: networkmanager, systemd-networkd networkmanager: ok systemd-networkd: ok long-running resources without health: 0 2 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 2 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T20:17:57Z 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-07T20:17:57Z modules the change moves: - networkmanager (changed) - systemd-networkd (changed) machines: - a machine (f35): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools) - holds mesh-dns-resolver (idt): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools) - 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; the change adds 1 resource(s) and removes 0 (+archive:systemd-networkd.bundle-tools) - a machine (yvbpsm): composes; the change adds 1 resource(s) and removes 0 (+archive:networkmanager.bundle-tools) a merge would rebuild 2 module(s) in 1 tier(s): networkmanager, systemd-networkd --- its merge-check.sh (go toolchain) long-running resources without health: 70, as kept testing modules/networkmanager ok networkmanager/cmd/uplink-tools 1.011s testing modules/systemd-networkd ok systemd-networkd/cmd/uplink-tools 1.011s ```
mesh-admin merged commit f27d3f21bb into main 2026-10-07 21:34:34 +00:00
mesh-admin deleted branch feat/node-uplink-verbs 2026-10-07 21:34:34 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#107