Merge together with mesh-catalog resolv-conf-to-uplink (the tests read it as the sibling).
Resolver tests moved to the new owner: per uplink module (dhcpcd, networkmanager, systemd-networkd) × anchor/home/laptop, the composed /etc/resolv.conf lists both holders, own first, no public resolver, two short attempts; the three templates are identical; each requires wildcard-resolution.
checkResources now counts a rendered fact's absolute path as its module's: before, two modules could each render or declare /etc/resolv.conf on one node and the host would write it twice per apply. Tested with a made-up second writer (as fact and as file).
No seat change here — node-resolver-config retires in retire-resolv-conf.
go vet ./..., go test ./... green. (With mesh-host main as a sibling, internal/broker TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose fails on main too — the host's genesis template lacks the build-seat tool subjects; unrelated.)
Merge together with mesh-catalog `resolv-conf-to-uplink` (the tests read it as the sibling).
- Resolver tests moved to the new owner: per uplink module (dhcpcd, networkmanager, systemd-networkd) × anchor/home/laptop, the composed `/etc/resolv.conf` lists both holders, own first, no public resolver, two short attempts; the three templates are identical; each requires `wildcard-resolution`.
- `checkResources` now counts a rendered fact's absolute path as its module's: before, two modules could each render or declare `/etc/resolv.conf` on one node and the host would write it twice per apply. Tested with a made-up second writer (as fact and as file).
No seat change here — node-resolver-config retires in `retire-resolv-conf`.
`go vet ./...`, `go test ./...` green. (With mesh-host main as a sibling, `internal/broker` TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose fails on main too — the host's genesis template lacks the build-seat tool subjects; unrelated.)
The catalogue moves /etc/resolv.conf from resolv-conf to the three uplink
modules. A rendered fact was not compared with other modules' paths, so two
modules could each write the resolver file on one machine, the last winning
every apply; a fact's path now counts as its module's.
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
Transitions
2026-10-06 23:05 (new) → proposed (announced): novox/mesh-controller#67 merged; its head was not heard by this owner, so it is made from the forge's word
2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@222a38e05012` — **held** since 2026-10-06T23:05:28Z
Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on.
**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
**Transitions**
- 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-controller#67 merged; its head was not heard by this owner, so it is made from the forge's word
- 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
This repo is archived. You cannot comment on pull requests.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Merge together with mesh-catalog
resolv-conf-to-uplink(the tests read it as the sibling)./etc/resolv.conflists both holders, own first, no public resolver, two short attempts; the three templates are identical; each requireswildcard-resolution.checkResourcesnow counts a rendered fact's absolute path as its module's: before, two modules could each render or declare/etc/resolv.confon one node and the host would write it twice per apply. Tested with a made-up second writer (as fact and as file).No seat change here — node-resolver-config retires in
retire-resolv-conf.go vet ./...,go test ./...green. (With mesh-host main as a sibling,internal/brokerTestTheInstallersFirstUserListIsWhatTheControllerWouldCompose fails on main too — the host's genesis template lacks the build-seat tool subjects; unrelated.)Delivery
novox/mesh-controller@222a38e05012— held since 2026-10-06T23:05:28ZHeld for a person: merged without a passing check: only a person decides that it goes on —
mesh-delivery.releasewith why lets it go on.Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.