Repository navigation
fix(mobile): configure another Claude account from Providers - #28928
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Mobile users can configure additional Claude accounts using server folders that are already signed in. The controls reuse existing provider settings operations, leave credentials intact on removal, and do not change product defaults. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
Mobile Settings > Providers only listed providers with in-app sign-in, so a user whose Claude account hit its limit could not add a second, already signed-in Claude config folder without the desktop app. Providers now lists each Claude instance with its sign-in status and config folder, and lets a user add one (name + CLAUDE_CONFIG_DIR folder), edit its name and folder, or remove a non-default one. Saves go through the existing mutateProviderInstance command, keep every other instance field, honor providers:manage and managed policy, and reuse the web wizard's instance-id derivation, now shared from client-runtime. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
e3d7463 to
351b8d3
Compare
**v0.1.8-nightly.20261105.4205** · 28 changes from 3 contributors - **Claude MCP Apps.** Use interactive MCP Apps in Claude Code threads. - **Organized repository clones.** Clone repositories into host, owner, and repository folders, including repositories with the same name. - **Agent browser tabs.** Open new agent browser tabs when idle tabs have filled the shared limit. - **Pending questions.** Answer or dismiss older questions and approval prompts even after their messages leave the loaded conversation. ### Plus 22 more bug fixes. <details> <summary>Full changelog</summary> ## What's Changed * docs: scope managed-policy LAN note to old background services by @b2bvic in pingdotgg/t3code#30900 * feat(server): render MCP Apps from Claude tool calls by @juliusmarminge in pingdotgg/t3code#29803 * build: run Effect rules on mobile and lock in clean suggestion rules by @juliusmarminge in pingdotgg/t3code#31111 * fix(mobile): keep iOS composer empty after sending an autocorrected word by @shivamhwp in pingdotgg/t3code#30308 * fix(server): idle agent tabs free a slot when the server's 32-tab browser limit is full by @shivamhwp in pingdotgg/t3code#24186 * fix(web): keep message navigation visible on touch when there is room by @shivamhwp in pingdotgg/t3code#26806 * fix(mobile): pinch wide images from anywhere in the Android viewer by @shivamhwp in pingdotgg/t3code#30929 * fix(mobile): preserve autocorrect in custom question answers by @shivamhwp in pingdotgg/t3code#30744 * fix(web): show Setting up during worktree setup by @shivamhwp in pingdotgg/t3code#28832 * fix(mobile): keep iOS thread menus short enough for drag selection by @shivamhwp in pingdotgg/t3code#30944 * fix(web): show the comparison base beside Changes totals by @shivamhwp in pingdotgg/t3code#30085 * fix(mobile): use H.264 for iOS previews and keep Close reachable by @shivamhwp in pingdotgg/t3code#28622 * fix(mobile): iOS image previews open without waiting for the gallery by @shivamhwp in pingdotgg/t3code#29044 * feat: optionally clone repos into ghq-style <host>/<owner>/<repo> folders by @shivamhwp in pingdotgg/t3code#24904 * fix(devices): explain Windows SSH host failures by @shivamhwp in pingdotgg/t3code#30941 * fix(web): make styled composer Markdown markers editable by @shivamhwp in pingdotgg/t3code#30421 * fix(mobile): configure another Claude account from Providers by @shivamhwp in pingdotgg/t3code#28928 * fix(web,mobile): save pull request description checkbox changes by @shivamhwp in pingdotgg/t3code#30704 * fix(client): a big server config on a slow link no longer drops the connection in a loop by @shivamhwp in pingdotgg/t3code#23758 * fix(server): restart T3 Connect's tunnel client when Cloudflare drops it by @shivamhwp in pingdotgg/t3code#24946 * fix(mobile): compact stale Claude threads before sending by @shivamhwp in pingdotgg/t3code#27935 * fix(web): show saved service access with Local environment off by @shivamhwp in pingdotgg/t3code#26464 * fix: keep older pending questions answerable by @shivamhwp in pingdotgg/t3code#26435 * fix(web): deleted forks no longer remain in Lineage by @shivamhwp in pingdotgg/t3code#29000 * fix(server): preserve sibling wakeups when interrupting a completion wake by @shivamhwp in pingdotgg/t3code#28204 * fix(server): attribute usage-limit auto-resume to T3 Code by @shivamhwp in pingdotgg/t3code#29838 * fix(acp): time out silent Antigravity prompts by @shivamhwp in pingdotgg/t3code#30377 * fix(codex): sharing usage limits offer the existing recovery options by @shivamhwp in pingdotgg/t3code#25341 ## New Contributors * @b2bvic made their first contribution in pingdotgg/t3code#30900 **Full Changelog**: pingdotgg/t3code@v0.1.8-nightly.20261104.4192...v0.1.8-nightly.20261105.4205 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.8-nightly.20261105.4205
Refs #28872
Mobile Settings → Providers omitted Claude, so users could not register another already signed-in Claude config folder from their phone. It now lists Claude instances and lets users add, edit, or remove them through the existing environment-scoped server command and permissions. Sign in with the Claude CLI on the server first. The existing model picker can then select that instance; this does not add a login flow or change handoffs.
The rebase preserves both reviewed patches unchanged. Current JavaScript and isolated Linux server use head 351b8d3, based on 8b44f42. Compatibility with current main a07be97 was rechecked on the combined merge tree below. The published PR head and its account runtime files are unchanged.
Verification at this head:
Native clients came from the validated fingerprint-matched cache on shiv, run r_i4r2wdypjpyx9q00. Their original cached build commits are unknown. Before images show the original Providers screen from the earlier verification; after images and recordings below use the head above. Recordings play at 2x speed.
Android before: no Claude setup controls.

Android after: the mobile-added instance and its config folder appear.

Android: add, edit, and confirm removal. The final removal was also checked in persisted settings and the live screen.
Android settings
Android: select Claude B · Opus, save, and reopen to confirm selection.
Android picker
iOS before: no Claude setup controls.

iOS after: add another entry despite an ID collision, then edit its name.

ios-settings-351b8d3.mp4
The removed entry disappears after the server refreshes its provider catalog.

iOS: select Claude B · Opus, save, and reopen to confirm selection.
iOS picker
The config folders contain test data. A local, no-network Claude protocol fixture reports an authenticated test identity for A. The web wizard registered B with the same fixture for picker verification. Mobile-created entries exercise the real save, edit, and removal paths; no credentials or paid turns were used.
Not shown: real Claude authentication or continuation after a weekly limit. This PR addresses registering an existing login folder from mobile. Windows registration and saved mobile selection were subsequently verified below.
Implemented with Claude Opus 5.5 / Claude Code; tested and reviewed with GPT-6.1 Sol / Codex.
Additional evidence for head 351b8d3:
Main 9e85538, Android Pixel 9 / API 35 against an isolated Linux server at that revision: open Settings → Providers and look for a way to register another Claude folder. Claude and its registration controls are absent.
main-providers-complete.mp4
PR head, same device and Linux environment: open Providers, add Claude B with its config folder, and see the saved row. The recording plays at 2x speed without cuts.
head-providers-full-2x.mp4
Windows pass: native ARM64 Windows 11 VM
t3-windows, OS 10.0.26200, Node v26.12.1. Server bundle built from head 351b8d3 withvp run build:bundle; runtime dependencies staged with the repository's CLI archive helpers and installed withvp install --prod.dist/bin.mjsSHA-256 isd8e5977ddea874bc11f3ff325266644d6d6a4606790f1417db3d7e95fb2d72a7. Android connects through an SSH forward to that server's loopback listener and uses the same native fingerprint recorded above.Register
C:/tmp/t3code-28872/account-bfrom Android on the Windows environment. The server re-probes it and the row reports Signed in.windows-registration.mp4
Choose Claude B Windows · Opus 5.5, save, and reopen the picker. This recording plays at 2x speed without cuts.
windows-selection.mp4
After relaunching the native app, reopen the same thread's picker: Claude B Windows · Opus 5.5 remains selected. Save retains the mobile composer draft; it applies to the server thread when a turn starts. No turn was sent.
windows-reopen-confirmation.mp4
The Windows settings audit passed:
Both Windows accounts use a local no-network protocol fixture. It reports synthetic authentication, answers initialization and usage probes, and sends no API requests. Real Claude authentication, quota recovery, and context handoff remain unverified.
Base compatibility recheck:
351b8d356635eb6c48f0ba4a4fda17790d42579d, current maina07be97ab0753b2b5b0caecebba69d7f872594fa. Their merge is conflict-free.effect-tsgo tsrs --noEmit. It does not change the account UI, planner, shared ID helper, or provider settings protocol. Later base changes share crypto and DPoP code.f418cea554231d93ce78dad2149c613caf1ed207, using a temporary local merge commit and its pinned dependencies. Client-runtime, mobile, and web typechecks all pass with@effect/tsgo0.67.1. Existing Effect suggestions remain non-fatal. The focused account, ID, and web-dialog tests pass. No combined-tree runtime pass was run; the attached device recordings still document the unchanged published head.