fix(ios): pair through every trusted route - #456
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughPairing redemption now supports request-ID replay recovery. The iOS client probes advertised hosts, selects a healthy route, retries eligible failures, and persists the successful endpoint and server-provided pairing data. ChangesPairing recovery and route failover
Estimated code review effort: 4 (Complex) | ~60 minutes Merge Risk: ⚪ Minimal · up to The pairing changes are supported by passing tests and builds, with no actionable merge-blocking risk remaining beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant PairingView
participant Session
participant CompanionClient
participant HealthEndpoint
participant PairingEndpoint
PairingView->>Session: Submit pairing request with pairRequestId
Session->>CompanionClient: Select first reachable route
CompanionClient->>HealthEndpoint: Probe advertised hosts
HealthEndpoint-->>CompanionClient: Return validated service identity
CompanionClient->>PairingEndpoint: Redeem credential
PairingEndpoint-->>CompanionClient: Return pairing response
CompanionClient-->>Session: Return response and winning connection
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description explains what changed, why it changed, how it was verified, and compatibility behavior. It is detailed and aligned with the pull request objectives, although it omits the template checklist and screenshots section. ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
What changed
Why
Initial pairing previously tried only the first QR address. If that MagicDNS or Bonjour name did not resolve on the phone, a working LAN address in the same QR was never attempted. Fallback rotation only began after pairing, so it could not help.
Verification
swift test: 144 passedCompatibility
Older mobile clients still get exactly-once pairing. Older desktop companions remain supported; the iOS client does not retry an authoritative HTTP rejection. The wire change is one optional
pairRequestIdfield.Summary by CodeRabbit
New Features
Bug Fixes