Skip to content

fix(apple): preserve canonical DNS names in peer snapshots - #247

Merged
jamesyong-42 merged 1 commit into
mainfrom
codex/swift-peer-dns-name
Nov 3, 2026
Merged

jamesyong-42 merged 1 commit into
mainfrom
codex/swift-peer-dns-name

Conversation

@jamesyong-42

@jamesyong-42 jamesyong-42 commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

A second installation can receive a Tailscale DNS collision suffix while keeping the same raw hostname. The Swift backend already receives that canonical name, but MeshNode dropped it before publishing Peer, so consumers could reconstruct and dial the wrong desktop address.

Expose optional Peer.dnsName and carry it through local snapshots, discovery, metadata updates and provisional-peer merging. Missing values remain nil; DNS changes participate in snapshot equality without changing PeerRef identity. The backend, transport, admission rules and wire format are unchanged.

Validation: all 116 Swift tests passed from the root published-package manifest on latest main. Regression coverage checks raw/canonical name differences, collision suffix updates, clearing the name, local identity, stable peer references and provisional merging. The root manifest continues to use the already-published, checksum-pinned TailscaleKit artifact.

This completes the DNS fix needed by Vibefield #12. Its previously tested app used the local Truffle patch; the clean published-dependency build correctly fails without this API. Ghosttea 0.14.0 preparation and Vibefield's Swift pins must move together after this fix is available in a verified Truffle SwiftPM release. No release version or tag is created by this PR; versioning remains owned by Release Please.


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

@jamesyong-42
jamesyong-42 merged commit 11f97d3 into main Nov 3, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant