Revert "Add T3 Connect onboarding for mobile and web"#3776
Conversation
This reverts commit fa6073e.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Reviewed by Cursor Bugbot for commit a2f86c8. Configure here.
| yield* refresh.pipe(Effect.forkScoped); | ||
| if (shouldRefresh) { | ||
| yield* refresh.pipe(Effect.forkScoped); | ||
| } |
There was a problem hiding this comment.
False empty cloud after sign-in
Medium Severity
After an in-session sign-in, credentials-changed clears relay discovery but skips refresh until hasRefreshed is true. Mobile environment settings then show “No additional linked cloud environments” even though relay was never queried, so published devices can look absent until the user taps refresh.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit a2f86c8. Configure here.
| // refresh on credentials-changed also runs on sign-out and must | ||
| // settle back to a clean empty list. | ||
| const signedOut = | ||
| error._tag === "ConnectionBlockedError" && error.reason === "authentication"; |
There was a problem hiding this comment.
Stale auth error after sign-in
Medium Severity
After a prior relay refresh, sign-out triggers another refresh that fails without credentials. The handler now always stores that failure in discovery.error instead of treating signed-out refresh as idle. Mobile can show “Could not load T3 Cloud environments” while Clerk already reports the user signed in, until activateCloudRelayAccount runs.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit a2f86c8. Configure here.
| // any screen asks for it. A signed-out refresh settles back to the | ||
| // clean empty state. | ||
| yield* refresh.pipe(Effect.forkScoped); | ||
| if (shouldRefresh) { |
There was a problem hiding this comment.
🟡 Medium relay/discovery.ts:316
The credentials-changed wakeup now resets state to the empty list but then skips refresh when hasRefreshed is false. On a cold start with an already signed-in user, hasRefreshed starts as false and is only set to true inside refresh itself — so this guard creates a chicken-and-egg deadlock. The wakeup wipes state clean and never repopulates it, so any UI reading state (e.g., SettingsEnvironmentsRouteScreen) shows an empty list with "No additional linked cloud environments" even when linked environments actually exist, until the user manually taps refresh.
The previous code always refreshed on this wakeup (with a comment explaining it fires on session activation / cold start), and the refresh flow already handles sign-out by settling back to the empty state. Consider restoring the unconditional refresh here, or seeding hasRefreshed so the proactive refresh isn't blocked on first run.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @packages/client-runtime/src/relay/discovery.ts around line 316:
The `credentials-changed` wakeup now resets `state` to the empty list but then skips `refresh` when `hasRefreshed` is `false`. On a cold start with an already signed-in user, `hasRefreshed` starts as `false` and is only set to `true` inside `refresh` itself — so this guard creates a chicken-and-egg deadlock. The wakeup wipes `state` clean and never repopulates it, so any UI reading `state` (e.g., `SettingsEnvironmentsRouteScreen`) shows an empty list with "No additional linked cloud environments" even when linked environments actually exist, until the user manually taps refresh.
The previous code always refreshed on this wakeup (with a comment explaining it fires on session activation / cold start), and the `refresh` flow already handles sign-out by settling back to the empty state. Consider restoring the unconditional `refresh` here, or seeding `hasRefreshed` so the proactive refresh isn't blocked on first run.
ApprovabilityVerdict: Needs human review 1 blocking correctness issue found. Unresolved review comments identify potential bugs in the relay discovery logic changes: the conditional refresh guard may cause empty cloud environment lists after sign-in, and sign-out error handling changed in ways that could show stale errors. These behavioral changes warrant human review. You can customize Macroscope's approvability policy. Learn more. |
* Improve live activity routing and diagnostics (pingdotgg#3685) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Use variant-specific splash icons in mobile app (pingdotgg#3762) * Fix Expo widget asset wiring order (pingdotgg#3763) * Extend Done display to 15 minutes and show up to 5 Live Activity banner rows (pingdotgg#3761) * Lead with the outcome when no agents are active in the Live Activity (pingdotgg#3768) * Add T3 Connect onboarding for mobile and web (pingdotgg#3765) * Revert "Add T3 Connect onboarding for mobile and web" (pingdotgg#3776) * Expose Clerk Google sign-in env vars to Expo (pingdotgg#3772) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Revert "Revert "Add T3 Connect onboarding for mobile and web"" (pingdotgg#3777) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Use rounded depth logo for production splash screen (pingdotgg#3780) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * Upgrade Clerk toolchain to latest versions (pingdotgg#3785) * fix(release): bump electron-builder so pnpm 11 deduped deps land in the asar (pingdotgg#3790) * chore: regenerate pnpm-lock after upstream sync (20260709) Reconcile the lockfile with the fork's package.json set (croner, web-push, hast-util-*, etc.) after cherry-picking upstream's Clerk toolchain and electron-builder bumps. Frozen-lockfile install verified. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Rowan <rowan@cardow.co> Co-authored-by: wizzoapp[bot] <254688279+wizzoapp[bot]@users.noreply.github.com>
* Add middle-click close for right panel tabs (pingdotgg#3161) Co-authored-by: Julius Marminge <jmarminge@gmail.com> * fix: warm WSL before preflight in WSL-only backend mode (pingdotgg#3588) * Add Claude Sonnet 5 as the default Claude model (pingdotgg#3620) * Restore the ultrathink frame border effect (pingdotgg#3625) * fix(dev): Fix electron dev launch and add test (pingdotgg#3662) * Add adaptive split-view layout for iPad/mobile workspace (pingdotgg#3514) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): compile patched native pods from source on EAS (pingdotgg#3667) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Make the thread composer read as elevated liquid glass (pingdotgg#3668) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Upgrade Vite Plus and enable bundled dev opt-in (pingdotgg#3679) * Surface pending tasks in mobile home and draft flow (pingdotgg#3670) * fix(mobile): combined test branch — scroll, back-swipe, thread lists, computer switching (pingdotgg#3687) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Add repo-root favicon.svg so t3 code shows its own icon (pingdotgg#3683) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Load thread snapshots over HTTP before live sync (pingdotgg#3719) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Fix mobile legend anchor under automatic iOS insets (pingdotgg#3684) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Improve live activity routing and diagnostics (pingdotgg#3685) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> * Prevent Add Project sheet from collapsing on relayout (pingdotgg#3759) * Use variant-specific splash icons in mobile app (pingdotgg#3762) * Fix Expo widget asset wiring order (pingdotgg#3763) * Extend Done display to 15 minutes and show up to 5 Live Activity banner rows (pingdotgg#3761) * Clear VCS presentation state on finish (pingdotgg#3764) * Lead with the outcome when no agents are active in the Live Activity (pingdotgg#3768) * Add T3 Connect onboarding for mobile and web (pingdotgg#3765) * Revert "Add T3 Connect onboarding for mobile and web" (pingdotgg#3776) * Expose Clerk Google sign-in env vars to Expo (pingdotgg#3772) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Set up Cursor Cloud dev environment (web + Android toolchain) (pingdotgg#3755) Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Theo Browne <t3dotgg@users.noreply.github.com> * Revert "Revert "Add T3 Connect onboarding for mobile and web"" (pingdotgg#3777) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Use rounded depth logo for production splash screen (pingdotgg#3780) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * fix(release): stage pnpm 11 allowBuilds for desktop installs (pingdotgg#3781) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * Upgrade Clerk toolchain to latest versions (pingdotgg#3785) * fix(release): bump electron-builder so pnpm 11 deduped deps land in the asar (pingdotgg#3790) * Fix desktop native optional dependency packaging (pingdotgg#3816) * [codex] Upgrade Clerk stack (pingdotgg#3821) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Preserve worktree metadata during branch sync (pingdotgg#3822) Co-authored-by: codex <codex@users.noreply.github.com> * feat(client): persist offline environment data and mobile preferences (pingdotgg#3795) Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Label max and ultra reasoning (pingdotgg#3824) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): embed fonts and render project favicons reliably (pingdotgg#3823) Co-authored-by: codex <codex@users.noreply.github.com> * Show compact PR number badges in mobile thread rows (pingdotgg#3827) Co-authored-by: codex <codex@users.noreply.github.com> * Expose mobile PR indicator labels to accessibility (pingdotgg#3828) Co-authored-by: codex <codex@users.noreply.github.com> * Fix truncated chat error alert layout (pingdotgg#3899) * fix(marketing): show platform-appropriate commit shortcut on the website (pingdotgg#3644) * [codex] Add Android mobile support (pingdotgg#3579) Co-authored-by: Horus Lugo <horusgoul@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> --------- Co-authored-by: Hugo Blom <6117705+huxcrux@users.noreply.github.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius@mac.lan> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Theo Browne <t3dotgg@users.noreply.github.com> Co-authored-by: Rowan <rowan@cardow.co> Co-authored-by: Patricio Gómez Meneses <107218376+Prgm-code@users.noreply.github.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Vedank Purohit <VedankPurohit2@gmail.com> Co-authored-by: Horus Lugo <horusgoul@gmail.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com> Co-authored-by: Alex <me@pixp.cc>


Reverts #3765
Note
Medium Risk
Removes guided post-sign-in setup and changes relay environment discovery timing after sign-in, which may leave cloud lists empty until settings triggers a refresh; core linking UI remains in Connections/Environments.
Overview
This reverts the T3 Connect onboarding work from #3765: post-sign-in wizards, opt-out persistence, and the shared cloud-environment list components are removed from mobile and web.
Mobile drops the
ConnectOnboardingform sheet, navigation hook, request atom, and sign-in trigger inCloudAuthProvider. T3 Cloud environment rows are inlined intoSettingsEnvironmentsRouteScreen(replacingCloudEnvironmentRows). User-facing copy shifts from “T3 Connect” to “T3 Cloud” in several connection/settings strings, andconnectOnboardingOptOutAccountsis removed from preferences.Web removes
ConnectOnboardingDialogfrom the root layout plus deleted modules (useCloudLinkController,CloudEnvironmentConnectList, shareditemRows). Connections settings now owns primary-environment link reconciliation and remote “Connect” rows inline (logic formerly in the hook/list components).client-runtime relay discovery only re-fetches on
credentials-changedif the user has already triggered a refresh once, and signed-out/auth failures are surfaced as errors again instead of a silent empty list; related discovery tests are removed.Reviewed by Cursor Bugbot for commit a2f86c8. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Revert T3 Connect onboarding flow and rename branding to T3 Cloud
CloudEnvironmentRowswith new in-file components (ConfiguredCloudEnvironmentRows,CloudEnvironmentRowShell, etc.) in mobile settings and webConnectionsSettings, adding richer status display, error handling with trace ID copy, and connect/disconnect interactions.RelayEnvironmentDiscoveryto only auto-refresh on credentials-changed if a prior refresh has already occurred, and to surface authentication-blocked errors in state rather than suppressing them.connectOnboardingOptOutAccountsfrom thePreferencesinterface and storage loading logic.📊 Macroscope summarized a2f86c8. 13 files reviewed, 0 issues evaluated, 0 issues filtered, 0 comments posted
🗂️ Filtered Issues
No issues evaluated.