Fixed
- Regression from #86: legitimate fan-out to distinct backends was being
collapsed. The first-match-wins fix in
#86 treated every
pair of overlapping instances as a conflict, including the supported case of
intentionally writing the same hostname to two different DNS backends (e.g.
internal Technitium + external Cloudflare for a split-horizon setup). Only
the first instance in declaration order would write; the rest were silently
dropped. Precedence is now scoped to a backend identity tuple
(provider type, endpoint, zone) × record type. Distinct backends each get
their write; only instances pointing at the same physical zone collapse to
the first declared. A startup-timeWARNenumerates colliding instances so
misconfigurations remain visible. Backward-compatible: out-of-tree providers
that don't implement the new optionalprovider.Identifiableinterface fall
back to type-only identity, preserving #86's behavior for them. Closes
upstream #88.
Thanks to @Dampfwalze for the regression
report and clear reproducer.
Docker Images
docker pull ghcr.io/maxfield-allison/dnsweaver:v1.4.6
docker pull docker.io/maxamill/dnsweaver:v1.4.6