Repository navigation
fix(apple): preserve canonical DNS names in peer snapshots - #247
Merged
Merged
Conversation
This was referenced Nov 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
MeshNodedropped it before publishingPeer, so consumers could reconstruct and dial the wrong desktop address.Expose optional
Peer.dnsNameand carry it through local snapshots, discovery, metadata updates and provisional-peer merging. Missing values remain nil; DNS changes participate in snapshot equality without changingPeerRefidentity. 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.
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.