Small fix, asked by the operator on 2026-11-08 after a review of the mesh's name resolution against ADR 0194 and ADR 0223.
What changes. The two server= lines of dnsmasq.conf (1.1.1.1 and 8.8.8.8) become the module's config values upstream-resolver-first and upstream-resolver-second. Each defaults to today's address and takes an IP address only. no-resolv and every other line are unchanged.
What the machines see. With the defaults, the rendered file differs only in one comment line. dnsmasq restarts once on ace and on novox (its restart-on names config), one resolver at a time by the canary order. Each machine lists both resolvers, so name resolution keeps working while one restarts.
Checked locally.go vet, go vet -tags integration and go test in modules/dnsmasq. The new test TestUpstreamsAreConfigValues fails on trunk. The catalogue's config, templates, requiredmodules, words, predefined, manifests and health checks pass. mesh-judge over all 144 manifests gives no changed verdict.
Small fix, asked by the operator on 2026-11-08 after a review of the mesh's name resolution against ADR 0194 and ADR 0223.
**What changes.** The two `server=` lines of dnsmasq.conf (1.1.1.1 and 8.8.8.8) become the module's config values `upstream-resolver-first` and `upstream-resolver-second`. Each defaults to today's address and takes an IP address only. `no-resolv` and every other line are unchanged.
**What the machines see.** With the defaults, the rendered file differs only in one comment line. dnsmasq restarts once on ace and on novox (its `restart-on` names config), one resolver at a time by the canary order. Each machine lists both resolvers, so name resolution keeps working while one restarts.
**Checked locally.** `go vet`, `go vet -tags integration` and `go test` in modules/dnsmasq. The new test `TestUpstreamsAreConfigValues` fails on trunk. The catalogue's config, templates, requiredmodules, words, predefined, manifests and health checks pass. mesh-judge over all 144 manifests gives no changed verdict.
Reviewed-by: lead-47@shanks at c88be88ccf2fb2addaf40ab117156c395abbc61b
https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
The two server lines were literals in the template, so changing an upstream needed a build. They are now the config keys upstream-resolver-first (1.1.1.1) and upstream-resolver-second (8.8.8.8), placed with ${config:...}; the service already restarts on its config file. no-resolv and every other line stay.
Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
Deliverynovox/mesh-catalog@c88be88ccf2f — merged since 2026-11-08T22:51:13Z
Source — source.main moved to novox/mesh-catalog@9480557537. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-11-08 22:49 (new) → proposed (announced): novox/mesh-catalog#634's head announced
2026-11-08 22:49 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-11-08 22:51 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@c88be88ccf2f` — **merged** since 2026-11-08T22:51:13Z
**Source** — source.main moved to novox/mesh-catalog@94805575379f. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-11-08 22:49 (new) → proposed (announced): novox/mesh-catalog#634's head announced
- 2026-11-08 22:49 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-11-08 22:51 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
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.
Small fix, asked by the operator on 2026-11-08 after a review of the mesh's name resolution against ADR 0194 and ADR 0223.
What changes. The two
server=lines of dnsmasq.conf (1.1.1.1 and 8.8.8.8) become the module's config valuesupstream-resolver-firstandupstream-resolver-second. Each defaults to today's address and takes an IP address only.no-resolvand every other line are unchanged.What the machines see. With the defaults, the rendered file differs only in one comment line. dnsmasq restarts once on ace and on novox (its
restart-onnames config), one resolver at a time by the canary order. Each machine lists both resolvers, so name resolution keeps working while one restarts.Checked locally.
go vet,go vet -tags integrationandgo testin modules/dnsmasq. The new testTestUpstreamsAreConfigValuesfails on trunk. The catalogue's config, templates, requiredmodules, words, predefined, manifests and health checks pass. mesh-judge over all 144 manifests gives no changed verdict.Reviewed-by: lead-47@shanks at
c88be88ccfhttps://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
The two server lines were literals in the template, so changing an upstream needed a build. They are now the config keys upstream-resolver-first (1.1.1.1) and upstream-resolver-second (8.8.8.8), placed with ${config:...}; the service already restarts on its config file. no-resolv and every other line stay. Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5Delivery
novox/mesh-catalog@c88be88ccf2f— merged since 2026-11-08T22:51:13ZSource — source.main moved to novox/mesh-catalog@9480557537. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.