Repository navigation
fix(connections): prefer Tailscale HTTPS routes - #26169
jakeleventhal wants to merge 3 commits into
Conversation
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — Newly added or learned routes now prefer Tailscale HTTPS over HTTP, changing automatic connection-route priority. This default preference requires human review, although users can still reorder routes manually. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
HTTPS route ordering packages/client-runtime/src/connection/routes.ts, packages/client-runtime/src/connection/routes.test.ts, docs/user/remote-access.md |
insertRoute applies an adjusted rank to Tailscale HTTPS routes. Tests cover insertion order, learned routes, shared credentials, and preserved manual ordering. The documentation states that HTTPS is preferred over HTTP. |
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Possibly related PRs
- pingdotgg/t3code#26757: Both changes affect how the client runtime handles direct tailnet routes and their relative ranking.
- pingdotgg/t3code#25852: Both changes affect learned-route handling and ordering for routes that share a credential.
- pingdotgg/t3code#25591: Both changes modify route insertion ordering.
Suggested reviewers: juliusmarminge, macroscopeapp
Merge Risk: 
Minimal · up to 545b4
-
The change is ready to merge after normal checks.
Pre-merge checks: 
4
-
Full details: Title check
-
Explanation
The title "fix(connections): prefer Tailscale HTTPS routes" is a conventional commit title that names the primary change. The changeset updates route ranking in routes.ts so Tailscale HTTPS routes are inserted ahead of Tailscale HTTP routes. The tests and user documentation cover the same behavior.
Full details: Description check
-
Explanation
The description follows the repository template. It has Problem, Change, Scope and approval, and Verification sections. The Problem and Change sections state the issue and the fix clearly. The Scope section explains why the change is a focused correction to existing ranking and does not add a setting or workflow. The Verification section lists specific tests, results, and unverified areas. The template's approval requirement is addressed by a focused-fix justification rather than a linked issue. The description does not link a triaged issue or maintainer approval comment, so a reviewer may want to confirm that the focused-fix exemption applies. The description also omits the model and harness line in a form that matches the template, although it names GPT-6.1 Sol and the Codex harness.
-
Finishing Touches: 💡 1
-
🛠️ Fix failing CI checks: 💡
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Usage-based review receipt
- Mode: Continue automatically
- Reviewed files: 2
- Charged: $0.50
- View usage details
Note
This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.
Comment @coderabbitai help to get the list of available commands.
e1b98fa to
bc05323
Compare
|
Note Written by thanks @jakeleventhal. your insertion-only fix already keeps saved/manual order and http fallback intact, so i kept the implementation, tests, and guidance unchanged. i merged current main ( verification:
before, main's insertion logic: after, this branch with the same routes: github confirms this head is mergeable: 21 checks passed, 10 skipped, none pending or failing. two independent gpt-6.1-sol reviewers approved this head without findings. the intentional default-priority change still needs maintainer review. cafe currently shows the previous head, so github was used to verify the current revision. |
|
Note Written by Verified in a real dev environmentchecked unchanged head
command and provider transcript Not verifiedthe changed tailscale behavior remains unverified. this vm has no tailscale executable, daemon or authenticated tailnet. main had no saved remote environments, so i could not reproduce the original http-before-https bug through real discovery. consequently i could not prove the pr prefers a newly discovered https route, keeps http fallback and lan priority, or preserves manual/saved ordering against live endpoints. the existing fixture screenshots and green ci do not establish that runtime result. no synthetic routes were substituted. to finish this verification, use an authenticated tailnet with working http and tailscale serve https endpoints, reproduce http-first discovery on main, repeat on this head, then check manual reorder persistence and http fallback when https is unavailable. the main provider log contained the requested response but its client did not display it during observation; this separate baseline issue was not changed. the pr displayed both responses. native electron, ios and android, remote relay/tunnel paths, and live tailscale connectivity were not exercised. result: central feature unverifiable in this environment; local web/provider checks passed. |

Problem
Tailscale HTTP and HTTPS routes had equal priority, so discovering HTTP first left it ahead of HTTPS. Reported here.
Change
Prefer Tailscale HTTPS when inserting newly added or learned routes in the shared web, desktop, and mobile runtime. LAN stays first, HTTP remains a fallback, and existing saved order is preserved, including manual preferences.
Scope and approval
Focused correction to existing connection route ranking, with regression tests and matching user guidance. No new setting or workflow.
Verification
vp test run packages/client-runtime/src/connection/routes.test.ts packages/client-runtime/src/connection/registry.test.ts packages/client-runtime/src/connection/supervisor.test.ts: 117 tests passed, covering both discovery orders, LAN priority, and saved ordering.vp run check:changed: format, lint, knip, affected typechecks, and adjacent tests passed.git diff --checkpassed. Chrome verified fixture-route insertion and persisted manual reordering. Live Tailscale connectivity and native client execution remain unverified.Written with GPT-6.1 Sol through the Codex harness.