fix(web): point pairing copy at Sharing & access#27692

open1
main
GitHub fork: pedro/fix-link-create-path
opened12d agobyPPedroNavHur
View on GitHubTwo-way sync enabledPR last imported 1d ago

Problem

The Link a machine dialog and the link cards on web and mobile say to make a pairing code under Settings → Connections → Create link. Connections is a sidebar group with two pages, Environments and Sharing & access, so the path stops one level short. Environments (/settings/connections), the first page in that group and the one this dialog lives on, has no Create link button. The button is in the Authorized clients header on Sharing & access (/settings/access). Fixes #27688.

Change

The copy now points at the pages that hold each control:

diff
1 Pairing code hint (web settings dialog, web link card, mobile link card)
2-Settings → Connections → Create link
3+Settings → Sharing & access → Authorized clients → Create link
4
5 Revoke hints (dialog headers, Forget confirm, pairing placeholder, t3 environment link/unlink)
6-in that machine's Connections
7+in that machine's Sharing & access (under Authorized clients where the sentence has room)
8
9 "Already linked" hint (web and mobile link card)
10-change its access in Settings → Connections
11+change its access in Settings → Environments

PeerLinks.link registers the linking machine on the other machine as an OAuth client named T3 Code · <label>. EnvironmentAuth.listClientSessions returns that session, and Sharing & access lists and revokes it under Authorized clients. So the revoke hints belonged on Sharing & access as well. The Linked environments section, where a link's access is changed by linking again, is rendered by ConnectionsSettings on the Environments page.

The t3 pair there hint stays. One more stale string remains on purpose: the MCP t3_environment_unlink description in apps/server/src/mcp/toolkits/orchestrator/tools.ts also says "Connections". It is text a model reads, and changing it would mean running the paid mcp-tool-use eval, so it is left for a separate change.

Scope and approval

This is a copy-only fix for the bug in #27688. It changes no behavior.

Verification

  • vp run check:changed upstream/main passed: format, lint, knip, graphql, typecheck of 5 packages, the test beside the change, and the React compiler check.

  • After the change, grep -rn "Connections" over the four touched files finds nothing.

  • Ran base (1da41f9) and head dev servers side by side, saved each as an environment in the other with a pairing code that lacks access:write, turned on Linked environments in Labs, and opened Link with that machine selected. That is the state where the dialog asks for a code.

    Before: Link an environment dialog, before After: Link an environment dialog, after

    Where the new path leads, on the other machine. Create link sits in the Authorized clients header on Sharing & access:

    Sharing & access with Authorized clients and Create link

  • Not captured: the web link card and the mobile link card. Both need a link request that an agent posts in a thread. They render the same hint text as the dialog above, changed in the same way.


Posted by Claude Code (claude-opus-5-5) via T3 Code triage.

Fixes pingdotgg/t3code#27688

Checks

21 successful · 8 skipped
All checks passed
7b6b90f
Synced from GitHub

Approvability

Verdict: Approved at 52729e0

Macroscope's review found this PR approvable — Updates pairing and revocation instructions to use the current settings names across web, mobile, and CLI. The changes are text-only and leave access controls, defaults, and linking behavior unchanged.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Review in Change Stack →

No actionable comments were generated in the recent review.

Walkthrough

The linked-environment instructions in web, mobile, and CLI now refer to Sharing & access and Authorized clients for link creation, access changes, and revocation.

Changes: Linked environment guidance

Layer / File(s)Summary
Update linked-environment navigation guidance
apps/web/src/components/settings/LinkedEnvironmentsSettings.tsx, apps/web/src/components/chat/LinkRequestCard.tsx, apps/mobile/src/features/threads/LinkRequestCard.tsx, apps/server/src/cli/environment.ts
Instructions identify Sharing & access and Authorized clients for creating, finding, changing access to, and revoking links. The unlink operation and its no-match message are unchanged.

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Bug fix · Severity of issue fixed: Low

Suggested reviewers: juliusmarminge

Merge Risk: External image Minimal · up to 52729

The copy-only navigation updates are consistent with the current web, mobile, and CLI settings destinations.

Pre-merge checks: Passed 4

Check nameStatusExplanation
Title checkPassedThe title clearly identifies the main change: updating pairing copy to reference Sharing & access. Although mobile and related revoke guidance are not named, the title is concise and accurately descri…
Linked Issues checkPassedThe changes satisfy the coding requirements in [#27688]. The web dialog, web link card, and mobile link card now direct pairing-code users to `Settings → Sharing & access → Authorized clients → Create…
Out of Scope Changes checkPassedAll changed files support [#27688]. The web and mobile copy fixes address the reported settings paths. The CLI description and message fixes address the same stale revoke guidance identified by the is…
Description checkPassedThe description covers the problem, changes across web, mobile, and CLI, scope, and focused verification. It includes screenshots for the dialog, reports test results, and identifies the MCP unlink te…
Full details: Title check

Explanation

The title clearly identifies the main change: updating pairing copy to reference Sharing & access. Although mobile and related revoke guidance are not named, the title is concise and accurately describes the primary fix.

Full details: Linked Issues check

Explanation

The changes satisfy the coding requirements in [#27688]. The web dialog, web link card, and mobile link card now direct pairing-code users to Settings → Sharing &amp; access → Authorized clients → Create link. Revoke guidance now names Sharing &amp; access, with Authorized clients included where space permits. Existing-link guidance now names Settings → Environments. The t3 environment link and t3 environment unlink CLI descriptions and unlink success message also use the corrected location. The diff changes copy only and does not alter linking behavior.

Full details: Out of Scope Changes check

Explanation

All changed files support [#27688]. The web and mobile copy fixes address the reported settings paths. The CLI description and message fixes address the same stale revoke guidance identified by the issue. No unrelated behavior or unrelated product area changed. The unchanged MCP description is an explicitly deferred string and does not make the present changes out of scope.

Full details: Description check

Explanation

The description covers the problem, changes across web, mobile, and CLI, scope, and focused verification. It includes screenshots for the dialog, reports test results, and identifies the MCP unlink text left unchanged for a separate change.

Finishing Touches

🧪 Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
External image Recent review info

External image Run configuration

External image Commits

Reviewing files that changed from the base of the PR and between 1da41f949950bda57f45dc73effb7543037c844f and 52729e0cb037ef273da86425cacf6fbba560b42f.

External image Files selected for processing: 4

  • apps/mobile/src/features/threads/LinkRequestCard.tsx
  • apps/server/src/cli/environment.ts
  • apps/web/src/components/chat/LinkRequestCard.tsx
  • apps/web/src/components/settings/LinkedEnvironmentsSettings.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Added 1 commit

  • fix(web): point pairing copy at Sharing & access7b6b90f

Note

Written by gpt-6.1-sol on behalf of Maria

Verified in a real dev environment

verified unchanged at 7b6b90f0ad0d2716ae3265a25b99f005be126575 on this linux boat vm, using repo playwright 1.60.0 and /usr/bin/google-chrome.

  • reproduced on github/main (5fe18d79ac) in a separate worktree, then stopped its dev server before starting the exact pr head with isolated state. one dev runner at a time.
  • created projects and threads through the ui and ran real codex gpt-6.1-sol turns on both revisions. the resulting link-request cards show the old and corrected pairing paths. the settings link dialog also shows the corrected revoke guidance and placeholder.
  • followed settings → sharing & access → authorized clients → create link. created a pairing code, paired a separate browser context, saw the new authorized client, and revoked it. also created and revoked a pairing link.
  • linked a separate, same-head standalone peer through the codex card with supervised access. the cli reported it reachable; the peer listed its actual T3 Code · … oauth session. the existing-link card points to settings → environments. the forget confirmation points to sharing & access.
  • exercised the actual cli unlink command: its success text names sharing & access. confirmed the remote session remains after local unlink, then revoked it through the running peer's authenticated http endpoint and confirmed it disappeared.
  • neighboring guards also worked: an older 0.1.2 peer was rejected for missing linked-agent limits; the same-head peer rejected linking while its labs switch was off and accepted it after enabling the switch through the client.

current github checks: 21 successful, 8 skipped, no failures or pending checks. no source changes, commits, or pushes were needed. automated checks were not rerun.

main settings dialog:

main settings link dialog with stale connections guidance

pr settings dialog:

pr settings link dialog with sharing and access guidance

main codex-generated link card:

main codex link card with stale create-link path

pr codex-generated link card, same form state:

pr codex link card with corrected create-link path

settings navigation, pairing-link creation, pairing-link revocation, and client revocation:

real settings creation and revocation flow

short command transcript

Not verified

media rendering limitation: the four screenshots render on github. github does not embed the mp4 with the requested image markdown, and git.cafe renders external media as links. the uploaded mp4 was opened in t3's rendered browser player, played to the end, and successfully sought.

native ios/android and the electron shell were not exercised on this linux browser setup. windows/macos, relay/tailscale/tunnel connections, and providers other than codex were not exercised. the older installed peer could not complete a link because of its version guard; the same-head peer completed it. no claim is made about older versions having the new settings names.