fix(pairing): backport upstream mobile pairing and tailscale endpoint fixes - #70
Merged
Conversation
(cherry picked from commit 1d694dc)
… environment (pingdotgg#7086) (cherry picked from commit 035058a)
…ndpoints (pingdotgg#7116) (cherry picked from commit d9c1732)
…ied (pingdotgg#6487) (cherry picked from commit 3bc4fdf)
`sidebarV2GroupByProject` landed in ClientSettings without reaching this fixture, so the suite failed on main and typecheck flagged the object as incomplete. Unrelated to the cherry-picks above, but it has to be green to verify them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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 freeto 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.
Our fork is 653 commits behind
pingdotgg/t3code(152 ahead). While chasing a phone that couldn't pair with the desktop, I checked what upstream already fixed in this area and found four commits we simply never picked up. This backports them rather than reinventing them — a full 653-commit merge conflicts in 86 files / 300 hunks (includingMigrations.ts, the orchestration decider, andChatView.tsxat 45 hunks alone), so that stays a separate job.Backported (cherry-picked with
-x, original authors preserved)fix(mobile): default bare IP pairing to HTTP192.168.1.21:3773built an https URL against a plain-HTTP desktop, so the handshake failed and reported an opaque transport errorfix(mobile): stop a directly-saved backend from hiding its T3 Connect environmentfix(mobile): recover the QR pairing scanner when camera access is deniedfix(desktop): keep tailscale spawn defects from breaking advertised endpointstailscalespawn defect took down the whole advertised-endpoint list — which matters here, since Tailscale is the answer for pairing from cellular(Numbers refer to upstream
pingdotgg/t3codePRs; each commit keeps itscherry picked fromtrailer.)One conflict, in
ConnectionsNewRouteScreen.tsx: upstream's hunk also importeduseReffor a commit we haven't taken. Resolved by keeping our hook set and taking onlyLinking, which pingdotgg#6487 actually needs.Also included: a one-line fixture fix (
sidebarV2GroupByProjectmissing fromDesktopClientSettings.test.ts). That test was already failing onmainand typecheck already flagged the object as incomplete — unrelated to the backports, but the suite had to be green to verify them.Verification
apps/mobile556,apps/desktop406 (was 405 + 1 pre-existing failure),packages/tailscale14,packages/shared323 — all pass.Stack.tsxandarchivedThreadList.test.ts. Both files are untouched by this branch — confirmed against the diff — so they predate it and are out of scope here.Relationship to the open PRs
#68 independently reimplemented upstream pingdotgg#4990's scheme fix before I knew upstream had it. Upstream's version is canonical, so #68 should be trimmed to just its transport-error hint (which upstream lacks) and #69 rebased on top.
What this does not fix
Not the original report. The desktop serves
http://192.168.1.21:3773correctly, the firewall is off, Android cleartext HTTP is already enabled bywithAndroidCleartextTraffic.cjs, iOS declaresNSLocalNetworkUsageDescription— and with the correct address entered, no connection from the phone reaches this machine. That points at the network path between phone and Mac, not at app code.🤖 Generated with Claude Code