fix(desktop): stop automatic passkey prompts - #7522
Conversation
|
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 Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Bug fix that replaces a local workaround with upstream Clerk package fixes. Well-scoped changes with added test coverage validating the expected passkey behavior. Author is a senior contributor with extensive history in these files. You can add or adjust custom eligibility rules. Learn more. |
This reverts commit f2d5fc9.
* fix(web): align sidebar statuses with project names (pingdotgg#7491) Co-authored-by: GPT-5.6 <noreply@openai.com> * fix(desktop): close the window before quit cleanup (pingdotgg#6562) * fix(desktop): stop automatic passkey prompts (pingdotgg#7522) * feat: choose the app icon, and name the artwork scenes Artwork options are Night sky, Blueprint, None, and your own uploads; "Match the build" is gone and Night sky is the default. An explicit pick now outranks the environment-identification mode and the palette heuristic, which is why choosing a scene did nothing on a release build. App icon adds the MT mark, a light variant, a dark variant, or your own image. It is applied to the running app - Dock tile on macOS, window icon elsewhere - because rewriting the installed bundle's icon would break the code signature and take every macOS permission grant with it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Rakshith Bhat <88523594+RakshithBhat03@users.noreply.github.com> Co-authored-by: GPT-5.6 <noreply@openai.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This reverts commit f2d5fc9.
This reverts commit f2d5fc9.
This reverts commit f2d5fc9.
## What's Changed * fix(desktop): stop automatic passkey prompts by @t3dotgg in pingdotgg/t3code#7522 * fix(web): align version text with its label by @RakshithBhat03 in pingdotgg/t3code#7521 * fix(web): refresh open file with the file tree by @StiensWout in pingdotgg/t3code#7490 * Add OpenCode skill discovery by @dbalders in pingdotgg/t3code#3154 * feat(web): unify workspace navigation by @maria-rcks in pingdotgg/t3code#7153 * fix(web): hide opencode's plan agent when legacy plan mode is off by @UtkarshUsername in pingdotgg/t3code#6420 * feat: refine thread action menus by @maria-rcks in pingdotgg/t3code#7476 * feat(web): redesign usage insights by @maria-rcks in pingdotgg/t3code#7147 * fix(server): outdated gh no longer reads as "not authenticated" by @t3dotgg in pingdotgg/t3code#7588 * fix(desktop): refresh queued updates before install by @SunkenInTime in pingdotgg/t3code#6269 * feat(web): confirm before closing a terminal by @maria-rcks in pingdotgg/t3code#7592 * feat(web): refresh pull request details by @maria-rcks in pingdotgg/t3code#7148 * fix(web): usage hourly breakdown lists every hour chronologically by @lgwacker in pingdotgg/t3code#7595 * fix(web): remove the terminal pane's app-canvas gutter by @jakeleventhal in pingdotgg/t3code#6222 * feat(web): attach composer state drawers by @maria-rcks in pingdotgg/t3code#7150 * fix(server): preserve tool lifecycle identity by @maria-rcks in pingdotgg/t3code#7151 * chore(desktop): use stable Clerk Electron release by @t3dotgg in pingdotgg/t3code#7602 **Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260819.1133...v0.0.34-nightly.20260820.1139 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260820.1139
This reverts commit f2d5fc9.
This reverts commit f2d5fc9.
This reverts commit f2d5fc9.
* test(web): remove duplicate lookup assertion (pingdotgg#7364) * fix(mobile): show structured input option descriptions (pingdotgg#7321) * fix(orchestration): do not revive idle tasks from status-free progress (pingdotgg#7172) * refactor(server): simplify error transformation with Effect.mapError in GitHubPullRequestCli (pingdotgg#7385) Signed-off-by: aoright <102943475+aoright@users.noreply.github.com> * fix(preview): open local environment ports on localhost (pingdotgg#7300) * fix(desktop): prevent quit shortcut spillover (pingdotgg#7397) * fix(desktop): stop overwriting a custom dock icon on launch (pingdotgg#7125) * feat(web): show project location in new thread picker (pingdotgg#7392) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * fix(packaging): install AUR launcher icons where icon themes look (pingdotgg#7421) * fix(web): label pull request merge actions (pingdotgg#7381) * fix(server): avoid PRs inherited from default upstreams (pingdotgg#7317) * fix(desktop): stop the passkey dialog from popping as soon as sign-in opens (pingdotgg#7437) * feat(desktop): mute a browser tab (pingdotgg#7252) * fix(web): improve disconnected composer placeholder (pingdotgg#7122) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> * fix(desktop): throttle hidden preview rendering (pingdotgg#7445) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> * fix(server): stop probing Grok, Cursor, and OpenCode unless turned on (pingdotgg#7459) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(desktop): boot the main window unthrottled so cold start paints at full speed (pingdotgg#7460) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(threads): a merged PR settles its thread only once (pingdotgg#7454) * feat(cli): npx t3 triage hands broken installs to your own coding agent (pingdotgg#6563) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(marketing): Safari gets the arm64 Mac download (pingdotgg#7473) * feat(web): add shortcuts to the surface dropdown (pingdotgg#7318) * fix(marketing): never serve the Intel build to Apple Silicon Macs (pingdotgg#7477) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): animate command palette when closing (pingdotgg#5169) * fix(desktop): upgrade Clerk OAuth transport (pingdotgg#7479) * feat(server): run the background service on macOS via launchd (pingdotgg#6286) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): align sidebar statuses with project names (pingdotgg#7491) Co-authored-by: GPT-5.6 <noreply@openai.com> * fix(desktop): close the window before quit cleanup (pingdotgg#6562) * fix(desktop): stop automatic passkey prompts (pingdotgg#7522) * docs(user): document phoenix triage and macOS background service The 2026-08-19 upstream sync added the triage command with no docs/user entry, and the docs index still called the background service Linux-only after launchd support landed. Found by PR #61 code review. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Signed-off-by: aoright <102943475+aoright@users.noreply.github.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com> Co-authored-by: Maslin Edwin <maslinje@gmail.com> Co-authored-by: aoright <102943475+aoright@users.noreply.github.com> Co-authored-by: Guilherme Barros <gbarros1095@gmail.com> Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com> Co-authored-by: Rishet11 <154429365+Rishet11@users.noreply.github.com> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: Augie <augie@luebbers.email> Co-authored-by: Taras <Taras.Fomin@gmail.com> Co-authored-by: Gianmarco <gianmarcosimone89@gmail.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Chris Deeming <chris@xenforo.com> Co-authored-by: Inaya Yousfi <zied.essaber@gmail.com> Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Rakshith Bhat <88523594+RakshithBhat03@users.noreply.github.com> Co-authored-by: GPT-5.6 <noreply@openai.com>
Range: 3b5d476..f2d5fc9 (21 upstream commits, merge-base 3b5d476). Shape: 23 files touched by both sides, 63 upstream-only, 525 fork-only. Zero conflicts — git found no textual overlap, so the audit below is the only thing that could have caught a bad merge. Conflicts: none. Every upstream-only file is byte-identical to origin/main and every fork-only file byte-identical to personal (verified by blob hash, not by inspection); only the 23 shared files were actually merged. Notable upstream changes landing on fork-rewritten files: - pingdotgg#7454 changed changeRequestAutoSettles from (state, autoSettleOnMerge) to (pr, {autoSettleOnMerge, thread}) so a merged PR settles its thread once. Both call sites live in fork-rewritten files (Sidebar.tsx +467 vs upstream +8, ChatView.tsx +550 vs upstream +36) and took the new shape. - pingdotgg#7318/pingdotgg#7252 rewrote RightPanelTabs.tsx (upstream 231/58 against the fork's 13/1). The fork's two "trustedFile" cases survived inside both surface switches — verified by reading the merged switches, since a line-level sweep cannot tell a surviving line from a reachable one. - pingdotgg#7459 turns Grok/Cursor/OpenCode probing off by default and folds the legacy in-config "enabled" flag into the envelope. Orthogonal to the fork's probe-cache pinning; unknown (fork) drivers default to enabled. - pingdotgg#7122 moved the disconnected composer placeholder into a shared constant. Its text is neutral about sending, so it does not contradict the fork's offline outbox. - pingdotgg#6286 adds launchd management under the label com.t3tools.t3code.service, distinct from this machine's hand-rolled com.t3code.server, so it cannot disturb the running install. - Clerk bump (pingdotgg#7522/pingdotgg#7479/pingdotgg#7437) rewrote the catalog and minimumReleaseAgeExclude blocks but not patchedDependencies. Invariants (docs/fork/README.md), all re-probed against the merged tree: 1. Migrations: 45 entries, ids unique and monotonic, max 46, id 34 still burned, filename numbers 033/037/038/039 still duplicated. PASS. 2. Fork-owned @effect/platform-node patch still pinned in patchedDependencies with its FORK-ONLY comment; patch file intact and carried in the lockfile by patch_hash. No effect bump in this range. PASS. 3. Sidebar default unflipped: AppSidebarLayout renders ThreadSidebar unless legacySidebarEnabled. Fork edits landed in Sidebar.tsx, the rendered one. PASS. 4. No fork-deleted line came back (sweep resurrected=0). PASS. 5. Upstream's "steers a running turn" ClaudeAdapter test still absent, with its explanatory comment. PASS. 6. Both project entry points still on the row: ellipsis opening the fork's project-actions dialog and gear navigating to /projects/$projectKey. PASS. Sweep (all three directions, 23 shared files): resurrected 0, dropped 0, fork-loss 0. Install: full pnpm install, 13 added / 7 removed, pnpm-lock.yaml unchanged afterwards — the lockfile committed here is the one the gate verified.
This reverts commit f2d5fc9.
The desktop sign-in form could open the native passkey dialog as soon as it rendered. Stable Clerk Electron does not yet contain Clerk PR #9500, and our local autofill override ran too late to stop the native request.
This pins the first Clerk Electron and UI canary builds that contain the upstream fix. It removes the local override, keeps the non-Electron Clerk packages stable, and adds coverage for both automatic and explicit passkey requests.
Tested:
vp test run apps/web/src/components/clerk/electronPasskeys.test.ts apps/desktop/src/app/DesktopClerk.test.tspnpm --filter @t3tools/web typecheckpnpm --filter @t3tools/desktop typecheckvp fmt --check apps/web/src/main.tsx apps/web/src/components/clerk/electronPasskeys.test.ts pnpm-workspace.yamlBuilt with GPT-5.6 Sol in the Codex harness.
Note
Medium Risk
Touches Electron sign-in and passkey behavior via pre-release Clerk canaries; risk is limited to desktop auth UX, not broad web auth changes.
Overview
Fixes desktop sign-in opening a native passkey dialog on mount by adopting Clerk’s upstream fix instead of a local shim.
Dependency pins:
@clerk/electronand@clerk/electron-passkeysmove to canary builds that include clerk/javascript#9500; catalog, lockfile, andminimumReleaseAgeExcludeare updated accordingly. Other Clerk packages stay on stable versions.Electron bootstrap (
main.tsx): Removes the wrapper that forcedisAutoFillSupportedtofalseand wirespasskeysdirectly from@clerk/electron/passkeys.ElectronClerkProvidernow passes__internal_clerkUIVersionso the embedded Clerk UI matches the canary that contains the same fix.Tests: New
electronPasskeys.test.tsasserts conditional/autofillpasskeys.getdoes not hit the native bridge (returnspasskey_operation_aborted), while explicit requests still call the bridge once.Reviewed by Cursor Bugbot for commit d4677f4. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Stop automatic passkey prompts in Electron by aborting conditional UI requests
electronPasskeys.tsso thatcreatePasskeys().get()returns apasskey_operation_abortederror whenconditionalUI=true, preventing the browser from triggering automatic passkey prompts in the Electron shell.@clerk/electronto0.0.34-canaryand@clerk/electron-passkeysto0.0.4-canaryinpnpm-workspace.yaml.isAutoFillSupportedtofalseinmain.tsx, replacing it with the upstream@clerk/electron/passkeysimplementation and adding an__internal_clerkUIVersionprop to<ElectronClerkProvider>.Macroscope summarized d4677f4.