fix(desktop): bump Clerk Electron SDK to 0.0.24 and register t3code:// scheme on Linux - #5015
Conversation
…/ scheme on Linux @clerk/electron 0.0.24 holds Electron's single-instance lock so OAuth deep-link callbacks reach the running app instead of being swallowed by a second instance. Defer to the SDK's lock and gate bootstrap on the bridge's isPrimaryInstance instead of acquiring our own lock after bridge creation. Register the t3code/t3code-dev schemes in the Linux electron-builder config so the generated .desktop entry carries MimeType=x-scheme-handler/t3code; and %U in Exec, letting browsers hand OAuth callbacks to the app. Also aligns the whole Clerk catalog (backend, clerk-js, expo, react, shared) so no internal Clerk package is duplicated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
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:
Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix is ON, but a cloud agent failed to start.
Reviewed by Cursor Bugbot for commit fd073ca. Configure here.
ApprovabilityVerdict: Needs human review This PR changes authentication infrastructure - the Clerk SDK upgrade introduces a new single-instance lock mechanism ( You can customize Macroscope's approvability policy. Learn more. |
…tance lock
Electron scopes the single-instance lock to userData and creates that
directory on acquisition. Since @clerk/electron 0.0.24 takes the lock at
bridge creation — before startup ran setPath("userData") — the default
productName-derived directory "T3 Code (Alpha)" was created, which the
legacy-install detection in resolveUserDataPath then preferred over the
real t3code directory on fresh and migrated installs.
Resolve and set the real userData path in the DesktopClerk layer before
creating the bridge, sharing DesktopAppIdentity's resolution logic.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
One convention issue: the extracted resolveUserDataPath helper takes the DesktopEnvironment service instance as a parameter in production code instead of acquiring it from the Effect environment. Inline comment below.
Posted via Macroscope — Effect Service Conventions
…UserDataPath Follow the Effect service convention: the shared helper reads DesktopEnvironment and FileSystem from the environment instead of taking the service instance as a parameter, and DesktopAppIdentity provides its captured context only at the service boundary. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Fix incorrect pluralization of “entry” (pingdotgg#3933) * feat(server): title background-task work-log rows with the task name (pingdotgg#3751) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: delegate OpenCode session titles to provider (pingdotgg#3720) * Archive selected threads from the context menu (pingdotgg#3895) * fix(cli): support force removing projects (pingdotgg#3922) * fix: allow sidebar to be shrunk when wider than viewport (pingdotgg#2456) Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(codex): show web search query and url in tool call details (pingdotgg#2093) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Add Codex launch arguments setting (pingdotgg#2892) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: root <root@localhost.localdomain> * [orchestration] Clear stale active turn when session becomes inactive (pingdotgg#3159) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Regenerate Codex reset credit protocol bindings (pingdotgg#4173) Co-authored-by: codex <codex@users.noreply.github.com> * fix(preview): preserve direct localhost navigation (pingdotgg#3939) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * Synchronize mobile threads with authoritative shell snapshots (pingdotgg#4163) Co-authored-by: codex <codex@users.noreply.github.com> * Gate iOS glass layout on native support (pingdotgg#4032) Co-authored-by: codex <codex@users.noreply.github.com> * fix(opencode): resume the OpenCode session on follow-ups instead of starting an empty one (pingdotgg#3617) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): use CLI for OpenCode health check instead of spawning server (pingdotgg#4153) * fix(web): scope timeline minimap hover target to the side gutter (pingdotgg#3869) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * [codex] show complete approval details (pingdotgg#4111) * fix(web): paint text selection over composer chips (pingdotgg#4139) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> * [codex] preserve custom model slugs (pingdotgg#4168) * fix(web): preview workspace images in the file panel (pingdotgg#3996) Co-authored-by: Rhiz3K <rhiz3k@protonmail.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * feat(web): drag files from the explorer into the chat composer (pingdotgg#4140) Co-authored-by: Julius Marminge <julius0216@outlook.com> Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> * fix(desktop): preserve main window bounds (pingdotgg#3851) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * perf(orchestration): speed up new-chat propagation and offline catch-up (pingdotgg#4177) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * Finale: upgrade changed files card to fix various UI issues (pingdotgg#4113) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Pass CLI OAuth config to hosted web deploy (pingdotgg#4186) Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): always show environment chip for remote projects (pingdotgg#4217) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep composer editable while disconnected (pingdotgg#4241) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main (pingdotgg#4240) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(claude): handle all SDK stream messages; stop spurious work-log warning rows (pingdotgg#4244) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Sidebar v2 beta: flat thread list with a server-backed settled lifecycle (pingdotgg#4026) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(settings): validate the add-provider wizard step before advancing (pingdotgg#2813) (pingdotgg#3100) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * fix(claude): isolate capability probe from user MCP servers (pingdotgg#4015) Co-authored-by: codex <codex@users.noreply.github.com> * Preserve connecting status while a turn starts (pingdotgg#4101) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): stop restoring stale OpenCode models (pingdotgg#4095) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] keep scoped package references as text (pingdotgg#4167) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): default provider selection for users without Codex (pingdotgg#4117) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * Unify temporary worktree branch naming (pingdotgg#4278) * fix(web): use message-square icon for settled icon-less project threads in sidebar v2 (pingdotgg#4279) * Stabilize sidebar settling animations (pingdotgg#4280) * Restore Copy Link in chat link context menu (pingdotgg#4161) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(desktop): handle EPIPE errors on stdout/stderr to prevent crash dialog (pingdotgg#4213) * Preserve draft thread highlighting during promotion (pingdotgg#4283) Co-authored-by: codex <codex@users.noreply.github.com> * Move mobile working timer into the thread timeline (pingdotgg#4285) * Stabilize PR status lookups and provider session lifecycle (pingdotgg#4281) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: open command palette instead of custom dialog for new thread picker in SidebarV2 (pingdotgg#4269) * fix(server): don't drop sticky PR fallback when remote URL can't be resolved (pingdotgg#4289) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): copy branch name via right-click in the branch selector (pingdotgg#4275) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add remote server updates and standalone service management (pingdotgg#4286) Co-authored-by: codex <codex@users.noreply.github.com> * Refine light-mode sidebar surfaces (pingdotgg#4268) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): don't mark Android VPN/Tailscale as offline when connected (pingdotgg#3949) * improve and prevent silent thread branch drift and PR fetching (pingdotgg#2284) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * feat(web): refresh application surfaces * style(web): polish dark mode dialogs * fix(web): unify and tune glass surfaces Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): apply glass opacity to thread tooltip * fix(web): override thread tooltip background * fix(web): apply glass opacity to model picker * style(web): polish glass opacity slider * fix(web): apply glass opacity to command palette * fix(web): add glass composer alerts * fix(web): honor composer glass opacity * test(web): stabilize timeline module setup * style(web): fade settings content beneath navbar * test(desktop): include glass opacity in settings fixture * fix(web): address redesign review findings * fix(web): sync provider banner dismissal * fix(web): new-thread defaults ignored for remote environments (pingdotgg#4276) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat: add "Auto" runtime mode — AI-reviewed approvals for Codex and Claude (pingdotgg#4272) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add shared t3.json project configuration support (pingdotgg#4317) * Restore light-mode surfaces and refine dialog styling - Restore light-mode glass, dialog, dropdown, and composer colors - Refine provider wizard, changed-file cards, sidebar controls, and buttons - Update wizard step tests for the new list structure * Unify dialog glass and fix composer overlays (pingdotgg#4365) Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): warn before silent Windows updates (pingdotgg#4350) * [codex] Move project grouping to General settings (pingdotgg#4313) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Group project scopes in mobile thread lists (pingdotgg#4314) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Move mobile project grouping to General settings (pingdotgg#4315) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Deduplicate connection failure messaging (pingdotgg#4367) Co-authored-by: codex <codex@users.noreply.github.com> * Restore grouped project filtering in Sidebar V2 (pingdotgg#4282) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * [codex] restore Sidebar V2 project actions (pingdotgg#4373) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Group projects in new-thread pickers (pingdotgg#4312) Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): restore dark composer toolbar styling * Fix thread tooltip folder icon color (pingdotgg#4383) * fix(server): parse CLI version in update preflight (pingdotgg#4389) * fix(web): sidebar v2 polish — jump hints, working duration, in-flight fade, settled sort (pingdotgg#4274) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix logical project grouping labels on mobile (pingdotgg#4391) Co-authored-by: codex <codex@users.noreply.github.com> * Add preview color scheme controls and simplify project grouping (pingdotgg#4385) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(cli): publish nightly branded favicons (pingdotgg#4372) * Fix thread loading flash (pingdotgg#4396) * fix(client-runtime): keep a warm thread un-settled despite a merged/closed PR (pingdotgg#4309) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix composer context strip alignment and glass shell (pingdotgg#4404) * Polish iOS git progress overlay with glass effects (pingdotgg#4387) * Improve composer glass fallbacks (pingdotgg#4406) Co-authored-by: codex <codex@users.noreply.github.com> * feat(web): collapse large git diffs by default to make chat more readable (pingdotgg#4409) * Stop new threads inheriting checkout/branch from viewed thread (pingdotgg#4411) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: tone down branch-mismatch banner (pingdotgg#4416) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: Claude Code skills discoverable for the composer $ picker (pingdotgg#4414) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep settled threads reachable when opened directly (pingdotgg#4413) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(sidebar-v2): thread snoozing (pingdotgg#4311) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria <maria@kuuro.net> * Upgrade Clerk packages and Expo integration (pingdotgg#4440) * Increase light-mode contrast for user message bubbles (pingdotgg#4441) * Restore model picker layout and retain iterative test state (pingdotgg#4450) Co-authored-by: codex <codex@users.noreply.github.com> * Color settled PR labels on hover (pingdotgg#4451) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Fix glass hover compositing artifacts (pingdotgg#4446) Co-authored-by: codex <codex@users.noreply.github.com> * Add Claude Opus 5 model (pingdotgg#4472) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Theo Browne <me@t3.gg> * feat(web): add collapse-all toggle to diff panel (pingdotgg#4475) * feat(web): show fast mode as a bolt instead of a "Normal" label (pingdotgg#4488) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * feat(dev): keep worktree dev state isolated on T3 Code dev servers (pingdotgg#4555) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * feat(dev): Make t3 code dev instances shareable over Tailscale (pingdotgg#4556) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(dev): skip browser-blocked ports (pingdotgg#4608) * fix: cut websocket throughput in half by pruning activity payloads (pingdotgg#4622) * perf(mobile): defer work-log detail serialization (pingdotgg#4607) * test: account for lazy thread feed details (pingdotgg#4628) * feat(relay): limit managed tunnels per user (pingdotgg#4530) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add managed tunnel limits migration (pingdotgg#4635) * Add background preview capture and picture-in-picture support (pingdotgg#4397) Co-authored-by: codex <codex@users.noreply.github.com> * feat(web): prompt stash — cmd+S saves the composer to a per-provider queue (pingdotgg#4453) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Upgrade Effect and Alchemy betas (pingdotgg#4643) Prepare Relay production infrastructure for the PlanetScale PS_20 HA topology, upgrade Effect and Alchemy to compatible betas, reconcile migration state, and preserve patched MCP session termination behavior.\n\nCo-authored-by: codex <codex@users.noreply.github.com> * feat: allow new thread creation through project breadcrumbs (pingdotgg#4638) * fix(web): scope PR state to the thread branch (pingdotgg#4460) Co-authored-by: codex <codex@users.noreply.github.com> * Drop redundant Relay user indexes (pingdotgg#4648) Co-authored-by: codex <codex@users.noreply.github.com> * feat(connect): release the Cloudflare tunnel when the environment shuts down (pingdotgg#4531) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Relay Worker RuntimeContext wiring (pingdotgg#4653) Co-authored-by: codex <codex@users.noreply.github.com> * Fix live sidebar resize limits and defer Alchemy runtime context (pingdotgg#4655) * fix(web): constrain branch toolbar context (pingdotgg#4657) * Keep MCP credentials alive across provider turns (pingdotgg#4659) * fix: close actions dropdown when editing (pingdotgg#4660) * fix(preview): stabilize PiP viewport identity (pingdotgg#4661) Co-authored-by: codex <codex@users.noreply.github.com> * Add glass styling for thread tooltips and simplify preview tab handling (pingdotgg#4665) * Use tarball archiving for hosted web deploys (pingdotgg#4669) * fix(server): bound editor discovery during config loading (pingdotgg#4291) * Prevent draft thread detail polling before shell registration (pingdotgg#4670) Co-authored-by: codex <codex@users.noreply.github.com> * feat: add configurable source control writing settings (pingdotgg#4204) Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * feat(diff-panel): show total line additions and deletions (pingdotgg#4674) * Clear provider update actions while updating (pingdotgg#4676) * Fix sidebar highlighting for draft threads (pingdotgg#4679) * Use glass surfaces for web toasts (pingdotgg#4681) * Show origin ref in branch trigger label (pingdotgg#4680) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): match react version to react-native 0.85.3 vendored renderer (19.2.3) (pingdotgg#4675) * chore(release): prepare v0.0.29 * Add OTA update checks to mobile settings (pingdotgg#4686) * fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(web): 33 web UI fixes (pingdotgg#4700) * Make mobile Thread List v2 the default (pingdotgg#4717) * Fix mobile showcase workflow without Clerk (pingdotgg#4718) * Fix relay credential lookup for unlinked environments (pingdotgg#4692) Co-authored-by: codex <codex@users.noreply.github.com> * Settle merged PR threads immediately (pingdotgg#4704) * feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652) * feat(web): add appearance settings category (pingdotgg#4715) * fix(desktop): allow updater-controlled relaunch (pingdotgg#4721) * fix(web): prevent diff panel scroll jumping (pingdotgg#4724) * Link inline code file paths in chat markdown (pingdotgg#4726) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730) Co-authored-by: Claude <noreply@anthropic.com> * perf(server): negotiate permessage-deflate on the websocket (pingdotgg#4705) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * docs: overhaul agent guidance (pingdotgg#4782) * Prevent sidebar row labels from truncating (pingdotgg#4789) * perf(server): gzip large thread snapshots (pingdotgg#4788) * fix(web): stashed prompts now survive switching providers (pingdotgg#4787) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Git ref refresh resource storms (pingdotgg#4727) Co-authored-by: codex <codex@users.noreply.github.com> * perf(server): trim stale context-window rows and drop dead replay RPC (pingdotgg#4791) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): defer command palette filesystem navigation (pingdotgg#2109) Co-authored-by: codex <codex@users.noreply.github.com> * fix(release): skip scripts during Vercel installs (pingdotgg#4796) * refactor(client): share filesystem browse navigation (pingdotgg#4797) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): defer filesystem navigation (pingdotgg#4799) Co-authored-by: codex <codex@users.noreply.github.com> * refactor(server): use native HTTP compression streams (pingdotgg#4798) Co-authored-by: codex <codex@users.noreply.github.com> * Remove Connect waitlist and add GA announcement tooling (pingdotgg#4691) * Fix Connect sign-in settings label (pingdotgg#4806) * chore(release): prepare v0.0.30 * fix(desktop): restore T3 Connect sign-in (pingdotgg#4809) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Simplify files panel header (pingdotgg#4828) * build(desktop): reduce installed app size by ~300MB (pingdotgg#4824) * Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832) * Preserve the thread shell while detail loads (pingdotgg#4830) * Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): detect repositories after initialization (pingdotgg#4848) * perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843) * fix(git): disable external diff for review diff previews (pingdotgg#4854) * Fix editable file focus and live syntax highlighting (pingdotgg#3979) * fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853) Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * chore(release): prepare v0.0.31 * fix(mobile): reduce thread feed scroll jank (pingdotgg#4874) * fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712) * fix(web): settle button now works on hover, not just right-click (pingdotgg#4905) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(clients): disable add project while disconnected (pingdotgg#4834) * fix(composer): hide default Codex service tier (pingdotgg#4784) * docs: link iOS and Android app store downloads (pingdotgg#4902) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): align remote server update action (pingdotgg#4731) * fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943) * perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): show Codex fast mode as a bolt (pingdotgg#4947) * docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): support dragged images in the composer (pingdotgg#4953) * fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * perf(mobile): reconnect environments immediately on resume (pingdotgg#4878) * feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): regenerate thread titles from sidebar (pingdotgg#4810) * fix(web): show server update progress through reconnect (pingdotgg#4903) * feat(search): find threads by conversation content (pingdotgg#4959) * fix: marketing site Vercel builds no longer die after ~100 deploys (pingdotgg#4975) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * docs: split user and maintainer docs, fix 100+ stale claims (pingdotgg#4807) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): server updates no longer look like warnings (pingdotgg#4992) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(connect): reboots no longer strand the relay link, 403s now say why (pingdotgg#4988) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add project file picker (⌘P) and project content search (⇧⌘F) (pingdotgg#4855) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * Check for mobile app updates on launch (pingdotgg#4958) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): support pre-Liquid-Glass iOS bottom toolbar (pingdotgg#4984) * fix(server): restore PR detection without HOME (pingdotgg#4985) * fix(web): fill fast mode icon (pingdotgg#5004) * fix: cache project favicons across web and mobile (pingdotgg#4767) * perf(ci): cut stale runs and redundant setup (pingdotgg#4802) * chore(mobile): bump app version to 1.0.1 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * style(web): make scroll-to-end pill translucent (pingdotgg#5036) * fix(ci): drop sparse-checkout from EAS workflows actions/checkout implements sparse-checkout with --filter=blob:none, so the runner repo is a partial clone missing the .repos/ blobs. eas-cli archives the project via `git clone --depth 1 file://<workspace>`, which upload-pack cannot serve from a partial clone and exits 128 (pingdotgg#4802 broke both EAS build workflows this way). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(desktop): bump Clerk Electron SDK to 0.0.24 and register t3code:// scheme on Linux (pingdotgg#5015) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * perf(server): cache default branch name and origin existence across status refreshes (pingdotgg#5008) * feat(shared): support shorthand (major-only) versions in the semver helpers (pingdotgg#5027) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(mobile): remove unnecessary photo library permission (pingdotgg#4929) * fix(shared): lenient JSON parser deletes commas inside string values (pingdotgg#5025) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(mobile): default bare IP pairing to HTTP (pingdotgg#4990) * fix(mobile): restore iOS Threads branding (pingdotgg#4862) * chore: add mobile issue template area (pingdotgg#4895) * fix(desktop): link release notes from the update downloaded toast (pingdotgg#4771) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * fix(mobile): accept Android clipboard images in composer (pingdotgg#4836) * fix(mobile): show the correct build channel in Android's Threads page header (pingdotgg#4861) * fix(contracts): decode growing config unions forward-compatibly (pingdotgg#5055) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): server model, worktree, and origin preferences now apply to new tasks (pingdotgg#5064) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(ci): repair the mobile showcase screenshots workflow (pingdotgg#5057) * fix(ci): capture iPad App Store screenshots in landscape (pingdotgg#5065) * fix(oxlint-plugin): Resolve the oxlint bin without assuming a pnpm layout (pingdotgg#5066) * feat(cli): `npx t3 pair` - generate QR code from a running server (pingdotgg#4955) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(server): self-update no longer rolls itself back on restart (pingdotgg#5095) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(ci): rotate iPad showcase captures without Simulator UI scripting (pingdotgg#5094) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): render terminals with libghostty-vt (pingdotgg#4860) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * refactor: move the canonical libghostty-vt vendor to the repository root (pingdotgg#5102) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(mobile): add thread snoozing (pingdotgg#5053) * feat(mobile): make settled threads collapsible (pingdotgg#5056) * follow-up normalization after pingdotgg#4700. (pingdotgg#4498) Co-authored-by: T3 Code Test <t3code-test@example.com> * feat(web): search threads from the sidebar (pingdotgg#4769) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(release): prepare Command Center desktop v1 * fix(ci): allow public release publisher identity * fix(web): avoid Windows preview path collision * test(release): reject Windows module path collisions * fix(release): bundle command center core * fix: audit preserved upstream history safely * feat(providers): add Kimi, subagents, and usage analytics * fix(ci): repair reconnects and PNG safety scanning * test(desktop): update Clerk environment fixture * fix(ci): align provider and server integration contracts * perf(web): skip impossible image encodings --------- Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: mel <mcmelon@nodiumhosting.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Tristan Knight <tris203@gmail.com> Co-authored-by: Christoph Herzog <a.github@omega-id.com> Co-authored-by: Andrew Barnes <bortstheboat@gmail.com> Co-authored-by: Shoaib <shoaib050326@gmail.com> Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Guilherme Vieira <46866023+GuilhermeVieiraDev@users.noreply.github.com> Co-authored-by: James <105842516+jamesx0416@users.noreply.github.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: root <root@localhost.localdomain> Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Chris Michael Guzman <67719167+Chrrxs@users.noreply.github.com> Co-authored-by: Vadym Kotai <vdmkotai@gmail.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: xxashxx-svg <xxanshxx9@gmail.com> Co-authored-by: Maxwell Young <maxtheyoung@gmail.com> Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Rhiz3K <33246262+Rhiz3K@users.noreply.github.com> Co-authored-by: Rhiz3K <rhiz3k@protonmail.com> Co-authored-by: Anirudh Coontoor <me@anirudhs.net> Co-authored-by: Rusiru Sadathana <rusirusadathana@gmail.com> Co-authored-by: ss <69873514+sandersonstabo@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Leonel Rivas <encriptandost@gmail.com> Co-authored-by: Jaret Bottoms <jaretbottoms@gmail.com> Co-authored-by: Ishan <ishansachu1@gmail.com> Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com> Co-authored-by: Miklós Fazekas <mfazekas@szemafor.com> Co-authored-by: Henry Zhang <113233555+caezium@users.noreply.github.com> Co-authored-by: Rushikesh Gaikwad <81632222+Wraient@users.noreply.github.com> Co-authored-by: legs <145564979+justsomelegs@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: tomlit <tomlit@gmail.com> Co-authored-by: jan <hi@4bs3nt.com> Co-authored-by: Alex Southwell <saphid@gmail.com> Co-authored-by: Max Katz <me@maxkatz.me> Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: wukko <me@wukko.me> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Simon Doba <simon.doba@hotmail.de> Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com> Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com> Co-authored-by: Arham Amin <132888838+arhxam@users.noreply.github.com> Co-authored-by: Elaine Lyons <elaine@lyons.app> Co-authored-by: Simone <lucenz@proton.me> Co-authored-by: Max Anderson <max.a.anderson95@gmail.com> Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com> Co-authored-by: Mike Olson <mwolson@member.fsf.org> Co-authored-by: T3 Code Test <t3code-test@example.com> Co-authored-by: atryan <atryan@users.noreply.github.com>
* fix: delegate OpenCode session titles to provider (pingdotgg#3720) * Archive selected threads from the context menu (pingdotgg#3895) * fix(cli): support force removing projects (pingdotgg#3922) * fix: allow sidebar to be shrunk when wider than viewport (pingdotgg#2456) Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(codex): show web search query and url in tool call details (pingdotgg#2093) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Add Codex launch arguments setting (pingdotgg#2892) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: root <root@localhost.localdomain> * [orchestration] Clear stale active turn when session becomes inactive (pingdotgg#3159) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Regenerate Codex reset credit protocol bindings (pingdotgg#4173) Co-authored-by: codex <codex@users.noreply.github.com> * fix(preview): preserve direct localhost navigation (pingdotgg#3939) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * Synchronize mobile threads with authoritative shell snapshots (pingdotgg#4163) Co-authored-by: codex <codex@users.noreply.github.com> * Gate iOS glass layout on native support (pingdotgg#4032) Co-authored-by: codex <codex@users.noreply.github.com> * fix(opencode): resume the OpenCode session on follow-ups instead of starting an empty one (pingdotgg#3617) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): use CLI for OpenCode health check instead of spawning server (pingdotgg#4153) * fix(web): scope timeline minimap hover target to the side gutter (pingdotgg#3869) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * [codex] show complete approval details (pingdotgg#4111) * fix(web): paint text selection over composer chips (pingdotgg#4139) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> * [codex] preserve custom model slugs (pingdotgg#4168) * fix(web): preview workspace images in the file panel (pingdotgg#3996) Co-authored-by: Rhiz3K <rhiz3k@protonmail.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * feat(web): drag files from the explorer into the chat composer (pingdotgg#4140) Co-authored-by: Julius Marminge <julius0216@outlook.com> Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> * fix(desktop): preserve main window bounds (pingdotgg#3851) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * perf(orchestration): speed up new-chat propagation and offline catch-up (pingdotgg#4177) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * Finale: upgrade changed files card to fix various UI issues (pingdotgg#4113) Co-authored-by: Julius Marminge <julius0216@outlook.com> * Pass CLI OAuth config to hosted web deploy (pingdotgg#4186) Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): always show environment chip for remote projects (pingdotgg#4217) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep composer editable while disconnected (pingdotgg#4241) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: better defaults — Claude 1M context, Codex gpt-5.6, worktrees from origin main (pingdotgg#4240) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(claude): handle all SDK stream messages; stop spurious work-log warning rows (pingdotgg#4244) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Sidebar v2 beta: flat thread list with a server-backed settled lifecycle (pingdotgg#4026) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(settings): validate the add-provider wizard step before advancing (pingdotgg#2813) (pingdotgg#3100) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * fix(claude): isolate capability probe from user MCP servers (pingdotgg#4015) Co-authored-by: codex <codex@users.noreply.github.com> * Preserve connecting status while a turn starts (pingdotgg#4101) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): stop restoring stale OpenCode models (pingdotgg#4095) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] keep scoped package references as text (pingdotgg#4167) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): default provider selection for users without Codex (pingdotgg#4117) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * Unify temporary worktree branch naming (pingdotgg#4278) * fix(web): use message-square icon for settled icon-less project threads in sidebar v2 (pingdotgg#4279) * Stabilize sidebar settling animations (pingdotgg#4280) * Restore Copy Link in chat link context menu (pingdotgg#4161) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(desktop): handle EPIPE errors on stdout/stderr to prevent crash dialog (pingdotgg#4213) * Preserve draft thread highlighting during promotion (pingdotgg#4283) Co-authored-by: codex <codex@users.noreply.github.com> * Move mobile working timer into the thread timeline (pingdotgg#4285) * Stabilize PR status lookups and provider session lifecycle (pingdotgg#4281) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: open command palette instead of custom dialog for new thread picker in SidebarV2 (pingdotgg#4269) * fix(server): don't drop sticky PR fallback when remote URL can't be resolved (pingdotgg#4289) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): copy branch name via right-click in the branch selector (pingdotgg#4275) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add remote server updates and standalone service management (pingdotgg#4286) Co-authored-by: codex <codex@users.noreply.github.com> * Refine light-mode sidebar surfaces (pingdotgg#4268) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): don't mark Android VPN/Tailscale as offline when connected (pingdotgg#3949) * improve and prevent silent thread branch drift and PR fetching (pingdotgg#2284) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * feat(web): refresh application surfaces * style(web): polish dark mode dialogs * fix(web): unify and tune glass surfaces Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): apply glass opacity to thread tooltip * fix(web): override thread tooltip background * fix(web): apply glass opacity to model picker * style(web): polish glass opacity slider * fix(web): apply glass opacity to command palette * fix(web): add glass composer alerts * fix(web): honor composer glass opacity * test(web): stabilize timeline module setup * style(web): fade settings content beneath navbar * test(desktop): include glass opacity in settings fixture * fix(web): address redesign review findings * fix(web): sync provider banner dismissal * fix(web): new-thread defaults ignored for remote environments (pingdotgg#4276) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat: add "Auto" runtime mode — AI-reviewed approvals for Codex and Claude (pingdotgg#4272) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add shared t3.json project configuration support (pingdotgg#4317) * Restore light-mode surfaces and refine dialog styling - Restore light-mode glass, dialog, dropdown, and composer colors - Refine provider wizard, changed-file cards, sidebar controls, and buttons - Update wizard step tests for the new list structure * Unify dialog glass and fix composer overlays (pingdotgg#4365) Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): warn before silent Windows updates (pingdotgg#4350) * [codex] Move project grouping to General settings (pingdotgg#4313) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Group project scopes in mobile thread lists (pingdotgg#4314) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Move mobile project grouping to General settings (pingdotgg#4315) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Deduplicate connection failure messaging (pingdotgg#4367) Co-authored-by: codex <codex@users.noreply.github.com> * Restore grouped project filtering in Sidebar V2 (pingdotgg#4282) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * [codex] restore Sidebar V2 project actions (pingdotgg#4373) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Group projects in new-thread pickers (pingdotgg#4312) Co-authored-by: codex <codex@users.noreply.github.com> * fix(web): restore dark composer toolbar styling * Fix thread tooltip folder icon color (pingdotgg#4383) * fix(server): parse CLI version in update preflight (pingdotgg#4389) * fix(web): sidebar v2 polish — jump hints, working duration, in-flight fade, settled sort (pingdotgg#4274) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix logical project grouping labels on mobile (pingdotgg#4391) Co-authored-by: codex <codex@users.noreply.github.com> * Add preview color scheme controls and simplify project grouping (pingdotgg#4385) Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(cli): publish nightly branded favicons (pingdotgg#4372) * Fix thread loading flash (pingdotgg#4396) * fix(client-runtime): keep a warm thread un-settled despite a merged/closed PR (pingdotgg#4309) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix composer context strip alignment and glass shell (pingdotgg#4404) * Polish iOS git progress overlay with glass effects (pingdotgg#4387) * Improve composer glass fallbacks (pingdotgg#4406) Co-authored-by: codex <codex@users.noreply.github.com> * feat(web): collapse large git diffs by default to make chat more readable (pingdotgg#4409) * Stop new threads inheriting checkout/branch from viewed thread (pingdotgg#4411) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: tone down branch-mismatch banner (pingdotgg#4416) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix: Claude Code skills discoverable for the composer $ picker (pingdotgg#4414) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep settled threads reachable when opened directly (pingdotgg#4413) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(sidebar-v2): thread snoozing (pingdotgg#4311) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: maria <maria@kuuro.net> * Upgrade Clerk packages and Expo integration (pingdotgg#4440) * Increase light-mode contrast for user message bubbles (pingdotgg#4441) * Restore model picker layout and retain iterative test state (pingdotgg#4450) Co-authored-by: codex <codex@users.noreply.github.com> * Color settled PR labels on hover (pingdotgg#4451) Co-authored-by: codex <codex@users.noreply.github.com> * [codex] Fix glass hover compositing artifacts (pingdotgg#4446) Co-authored-by: codex <codex@users.noreply.github.com> * Add Claude Opus 5 model (pingdotgg#4472) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Theo Browne <me@t3.gg> * feat(web): add collapse-all toggle to diff panel (pingdotgg#4475) * feat(web): show fast mode as a bolt instead of a "Normal" label (pingdotgg#4488) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * feat(dev): keep worktree dev state isolated on T3 Code dev servers (pingdotgg#4555) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * feat(dev): Make t3 code dev instances shareable over Tailscale (pingdotgg#4556) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(dev): skip browser-blocked ports (pingdotgg#4608) * fix: cut websocket throughput in half by pruning activity payloads (pingdotgg#4622) * perf(mobile): defer work-log detail serialization (pingdotgg#4607) * test: account for lazy thread feed details (pingdotgg#4628) * feat(relay): limit managed tunnels per user (pingdotgg#4530) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add managed tunnel limits migration (pingdotgg#4635) * Add background preview capture and picture-in-picture support (pingdotgg#4397) Co-authored-by: codex <codex@users.noreply.github.com> * feat(web): prompt stash — cmd+S saves the composer to a per-provider queue (pingdotgg#4453) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Upgrade Effect and Alchemy betas (pingdotgg#4643) Prepare Relay production infrastructure for the PlanetScale PS_20 HA topology, upgrade Effect and Alchemy to compatible betas, reconcile migration state, and preserve patched MCP session termination behavior.\n\nCo-authored-by: codex <codex@users.noreply.github.com> * feat: allow new thread creation through project breadcrumbs (pingdotgg#4638) * fix(web): scope PR state to the thread branch (pingdotgg#4460) Co-authored-by: codex <codex@users.noreply.github.com> * Drop redundant Relay user indexes (pingdotgg#4648) Co-authored-by: codex <codex@users.noreply.github.com> * feat(connect): release the Cloudflare tunnel when the environment shuts down (pingdotgg#4531) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Relay Worker RuntimeContext wiring (pingdotgg#4653) Co-authored-by: codex <codex@users.noreply.github.com> * Fix live sidebar resize limits and defer Alchemy runtime context (pingdotgg#4655) * fix(web): constrain branch toolbar context (pingdotgg#4657) * Keep MCP credentials alive across provider turns (pingdotgg#4659) * fix: close actions dropdown when editing (pingdotgg#4660) * fix(preview): stabilize PiP viewport identity (pingdotgg#4661) Co-authored-by: codex <codex@users.noreply.github.com> * Add glass styling for thread tooltips and simplify preview tab handling (pingdotgg#4665) * Use tarball archiving for hosted web deploys (pingdotgg#4669) * fix(server): bound editor discovery during config loading (pingdotgg#4291) * Prevent draft thread detail polling before shell registration (pingdotgg#4670) Co-authored-by: codex <codex@users.noreply.github.com> * feat: add configurable source control writing settings (pingdotgg#4204) Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com> * feat(diff-panel): show total line additions and deletions (pingdotgg#4674) * Clear provider update actions while updating (pingdotgg#4676) * Fix sidebar highlighting for draft threads (pingdotgg#4679) * Use glass surfaces for web toasts (pingdotgg#4681) * Show origin ref in branch trigger label (pingdotgg#4680) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): match react version to react-native 0.85.3 vendored renderer (19.2.3) (pingdotgg#4675) * chore(release): prepare v0.0.29 * Add OTA update checks to mobile settings (pingdotgg#4686) * fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(web): 33 web UI fixes (pingdotgg#4700) * Make mobile Thread List v2 the default (pingdotgg#4717) * Fix mobile showcase workflow without Clerk (pingdotgg#4718) * Fix relay credential lookup for unlinked environments (pingdotgg#4692) Co-authored-by: codex <codex@users.noreply.github.com> * Settle merged PR threads immediately (pingdotgg#4704) * feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652) * feat(web): add appearance settings category (pingdotgg#4715) * fix(desktop): allow updater-controlled relaunch (pingdotgg#4721) * fix(web): prevent diff panel scroll jumping (pingdotgg#4724) * Link inline code file paths in chat markdown (pingdotgg#4726) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730) Co-authored-by: Claude <noreply@anthropic.com> * perf(server): negotiate permessage-deflate on the websocket (pingdotgg#4705) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * docs: overhaul agent guidance (pingdotgg#4782) * Prevent sidebar row labels from truncating (pingdotgg#4789) * perf(server): gzip large thread snapshots (pingdotgg#4788) * fix(web): stashed prompts now survive switching providers (pingdotgg#4787) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Fix Git ref refresh resource storms (pingdotgg#4727) Co-authored-by: codex <codex@users.noreply.github.com> * perf(server): trim stale context-window rows and drop dead replay RPC (pingdotgg#4791) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): defer command palette filesystem navigation (pingdotgg#2109) Co-authored-by: codex <codex@users.noreply.github.com> * fix(release): skip scripts during Vercel installs (pingdotgg#4796) * refactor(client): share filesystem browse navigation (pingdotgg#4797) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): defer filesystem navigation (pingdotgg#4799) Co-authored-by: codex <codex@users.noreply.github.com> * refactor(server): use native HTTP compression streams (pingdotgg#4798) Co-authored-by: codex <codex@users.noreply.github.com> * Remove Connect waitlist and add GA announcement tooling (pingdotgg#4691) * Fix Connect sign-in settings label (pingdotgg#4806) * chore(release): prepare v0.0.30 * fix(desktop): restore T3 Connect sign-in (pingdotgg#4809) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Simplify files panel header (pingdotgg#4828) * build(desktop): reduce installed app size by ~300MB (pingdotgg#4824) * Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832) * Preserve the thread shell while detail loads (pingdotgg#4830) * Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): detect repositories after initialization (pingdotgg#4848) * perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843) * fix(git): disable external diff for review diff previews (pingdotgg#4854) * Fix editable file focus and live syntax highlighting (pingdotgg#3979) * fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853) Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * chore(release): prepare v0.0.31 * fix(mobile): reduce thread feed scroll jank (pingdotgg#4874) * fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712) * fix(web): settle button now works on hover, not just right-click (pingdotgg#4905) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(clients): disable add project while disconnected (pingdotgg#4834) * fix(composer): hide default Codex service tier (pingdotgg#4784) * docs: link iOS and Android app store downloads (pingdotgg#4902) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): align remote server update action (pingdotgg#4731) * fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943) * perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): show Codex fast mode as a bolt (pingdotgg#4947) * docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): support dragged images in the composer (pingdotgg#4953) * fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * perf(mobile): reconnect environments immediately on resume (pingdotgg#4878) * feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): regenerate thread titles from sidebar (pingdotgg#4810) * fix(web): show server update progress through reconnect (pingdotgg#4903) * feat(search): find threads by conversation content (pingdotgg#4959) * fix: marketing site Vercel builds no longer die after ~100 deploys (pingdotgg#4975) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * docs: split user and maintainer docs, fix 100+ stale claims (pingdotgg#4807) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): server updates no longer look like warnings (pingdotgg#4992) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(connect): reboots no longer strand the relay link, 403s now say why (pingdotgg#4988) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Add project file picker (⌘P) and project content search (⇧⌘F) (pingdotgg#4855) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * Check for mobile app updates on launch (pingdotgg#4958) Co-authored-by: codex <codex@users.noreply.github.com> * fix(mobile): support pre-Liquid-Glass iOS bottom toolbar (pingdotgg#4984) * fix(server): restore PR detection without HOME (pingdotgg#4985) * fix(web): fill fast mode icon (pingdotgg#5004) * fix: cache project favicons across web and mobile (pingdotgg#4767) * perf(ci): cut stale runs and redundant setup (pingdotgg#4802) * chore(mobile): bump app version to 1.0.1 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * style(web): make scroll-to-end pill translucent (pingdotgg#5036) * fix(ci): drop sparse-checkout from EAS workflows actions/checkout implements sparse-checkout with --filter=blob:none, so the runner repo is a partial clone missing the .repos/ blobs. eas-cli archives the project via `git clone --depth 1 file://<workspace>`, which upload-pack cannot serve from a partial clone and exits 128 (pingdotgg#4802 broke both EAS build workflows this way). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(desktop): bump Clerk Electron SDK to 0.0.24 and register t3code:// scheme on Linux (pingdotgg#5015) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * perf(server): cache default branch name and origin existence across status refreshes (pingdotgg#5008) * feat(shared): support shorthand (major-only) versions in the semver helpers (pingdotgg#5027) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(mobile): remove unnecessary photo library permission (pingdotgg#4929) * fix(shared): lenient JSON parser deletes commas inside string values (pingdotgg#5025) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(mobile): default bare IP pairing to HTTP (pingdotgg#4990) * fix(mobile): restore iOS Threads branding (pingdotgg#4862) * chore: add mobile issue template area (pingdotgg#4895) * fix(desktop): link release notes from the update downloaded toast (pingdotgg#4771) Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * fix(mobile): accept Android clipboard images in composer (pingdotgg#4836) * fix(mobile): show the correct build channel in Android's Threads page header (pingdotgg#4861) * fix(contracts): decode growing config unions forward-compatibly (pingdotgg#5055) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): server model, worktree, and origin preferences now apply to new tasks (pingdotgg#5064) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(ci): repair the mobile showcase screenshots workflow (pingdotgg#5057) * fix(ci): capture iPad App Store screenshots in landscape (pingdotgg#5065) * fix(oxlint-plugin): Resolve the oxlint bin without assuming a pnpm layout (pingdotgg#5066) * feat(cli): `npx t3 pair` - generate QR code from a running server (pingdotgg#4955) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(server): self-update no longer rolls itself back on restart (pingdotgg#5095) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(ci): rotate iPad showcase captures without Simulator UI scripting (pingdotgg#5094) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): render terminals with libghostty-vt (pingdotgg#4860) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * refactor: move the canonical libghostty-vt vendor to the repository root (pingdotgg#5102) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(mobile): add thread snoozing (pingdotgg#5053) * feat(mobile): make settled threads collapsible (pingdotgg#5056) * follow-up normalization after pingdotgg#4700. (pingdotgg#4498) Co-authored-by: T3 Code Test <t3code-test@example.com> * feat(web): search threads from the sidebar (pingdotgg#4769) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(release): prepare Command Center desktop v1 * fix(ci): allow public release publisher identity * fix(web): avoid Windows preview path collision * test(release): reject Windows module path collisions * fix(release): bundle command center core * fix: audit preserved upstream history safely * feat(providers): add Kimi, subagents, and usage analytics * fix(ci): repair reconnects and PNG safety scanning * test(desktop): update Clerk environment fixture * fix(ci): align provider and server integration contracts * perf(web): skip impossible image encodings * fix command center chats on native desktop hosts --------- Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Tristan Knight <tris203@gmail.com> Co-authored-by: Christoph Herzog <a.github@omega-id.com> Co-authored-by: Andrew Barnes <bortstheboat@gmail.com> Co-authored-by: Shoaib <shoaib050326@gmail.com> Co-authored-by: Shoaib Ansari <shoaibansari@Shoaibs-Mac-mini.local> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Guilherme Vieira <46866023+GuilhermeVieiraDev@users.noreply.github.com> Co-authored-by: James <105842516+jamesx0416@users.noreply.github.com> Co-authored-by: Julius Marminge <jmarminge@gmail.com> Co-authored-by: root <root@localhost.localdomain> Co-authored-by: Andrew Forster <76947376+Andrew-Forster@users.noreply.github.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Chris Michael Guzman <67719167+Chrrxs@users.noreply.github.com> Co-authored-by: Vadym Kotai <vdmkotai@gmail.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: xxashxx-svg <xxanshxx9@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Maxwell Young <maxtheyoung@gmail.com> Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Rhiz3K <33246262+Rhiz3K@users.noreply.github.com> Co-authored-by: Rhiz3K <rhiz3k@protonmail.com> Co-authored-by: Anirudh Coontoor <me@anirudhs.net> Co-authored-by: Rusiru Sadathana <rusirusadathana@gmail.com> Co-authored-by: ss <69873514+sandersonstabo@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Leonel Rivas <encriptandost@gmail.com> Co-authored-by: Jaret Bottoms <jaretbottoms@gmail.com> Co-authored-by: Ishan <ishansachu1@gmail.com> Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com> Co-authored-by: Miklós Fazekas <mfazekas@szemafor.com> Co-authored-by: Henry Zhang <113233555+caezium@users.noreply.github.com> Co-authored-by: Rushikesh Gaikwad <81632222+Wraient@users.noreply.github.com> Co-authored-by: legs <145564979+justsomelegs@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: tomlit <tomlit@gmail.com> Co-authored-by: jan <hi@4bs3nt.com> Co-authored-by: Alex Southwell <saphid@gmail.com> Co-authored-by: Max Katz <me@maxkatz.me> Co-authored-by: Krzysztof Moch <krzysmoch.programs@gmail.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: wukko <me@wukko.me> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Simon Doba <simon.doba@hotmail.de> Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com> Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com> Co-authored-by: Arham Amin <132888838+arhxam@users.noreply.github.com> Co-authored-by: Elaine Lyons <elaine@lyons.app> Co-authored-by: Simone <lucenz@proton.me> Co-authored-by: Max Anderson <max.a.anderson95@gmail.com> Co-authored-by: Aditya Vardhan Sharma <adityaradhika13@gmail.com> Co-authored-by: Mike Olson <mwolson@member.fsf.org> Co-authored-by: T3 Code Test <t3code-test@example.com> Co-authored-by: atryan <atryan@users.noreply.github.com>

Summary
@clerk/electron@0.0.24ships the fix for the stuck OAuth spinner / "You are signed out" state: the SDK now holds Electron's single-instance lock so deep-link callbacks are forwarded to the running app instead of being swallowed by a second instance (see@clerk/electronREADME). This PR upgrades to it and does the required app-side changes.Version bumps (
pnpm-workspace.yamlcatalog)@clerk/electron0.0.18 → 0.0.24@clerk/clerk-js6.25.7 → 6.25.12,@clerk/react6.12.7 → 6.12.9,@clerk/shared4.25.7 → 4.25.9 (exactly what 0.0.24 depends on)@clerk/backend3.13.0 → 3.14.0,@clerk/expo4.0.2 → 4.1.2 so every Clerk package agrees on the shared internals@clerk/electron-passkeysstays 0.0.3 (latest stable)The lockfile resolves each
@clerk/*package to exactly one version — no duplicated Clerk internals.Single-instance lock handoff
createClerkBridgenow acquires the lock itself when a renderer scheme is configured.DesktopClerk.configurepreviously acquired its own lock after bridge creation, which would conflict; it now gates bootstrap on the bridge's newisPrimaryInstanceflag per the README (secondary instances quit and interrupt startup beforewhenReadyfires). Thesecond-instancehandler that reveals the main window is unchanged, and the now-unusedrequestSingleInstanceLockwrapper is removed from theElectronAppservice.Ordering note: the lock is now acquired at bridge creation, before the custom
userDatapath is set. This is safe — primary and secondary instances of the same build both acquire it at the same point with the same default path, and dev-instance isolation viaXDG_CONFIG_HOMEapplies to Electron's default path too.Linux
.desktopscheme registrationAdds
protocols: [{ name: "T3 Code", schemes: ["t3code", "t3code-dev"] }]to the Linux electron-builder config (mirroring macOS). Verified against electron-builder 26.15.6'sLinuxTargetHelper: this emitsMimeType=x-scheme-handler/t3code;x-scheme-handler/t3code-dev;and the generatedExecalready ends with%U— the missing registration behind the "No apps installed" dialog Firefox users saw. Linux users get this with the next packaged release since the.desktopentry is generated at build time.Test plan
DesktopClerk.test.tsprotocolsconfig inbuild-desktop-artifact.test.ts🤖 Generated with Claude Code
Note
Medium Risk
Changes desktop auth bootstrap ordering (userData path before Clerk bridge) and single-instance behavior, which are sensitive for OAuth and multi-launch edge cases; Linux deep-link registration only affects packaged builds.
Overview
Upgrades Clerk packages (notably
@clerk/electron0.0.18 → 0.0.24) so the desktop app relies on the SDK’s single-instance lock for OAuth deep links instead of callingrequestSingleInstanceLockitself.Bootstrap / single-instance:
DesktopClerksets ElectronuserDatavia exportedresolveUserDataPathbefore creating the Clerk bridge, so lock acquisition does not create a misleading legacy folder on fresh installs.configuregates startup onbridge.isPrimaryInstance(secondary instances quit and interrupt beforewhenReady); thesecond-instancewindow-reveal handler remains.requestSingleInstanceLockis removed from theElectronAppservice and test mocks.Linux packaging: The electron-builder Linux config adds
protocolsfort3codeandt3code-devso generated.desktopfiles registerx-scheme-handlerMIME types for browser OAuth callbacks.Reviewed by Cursor Bugbot for commit 702ae3f. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Bump Clerk Electron SDK to 0.0.24 and register
t3code://scheme on Linux@clerk/electronand related Clerk packages in pnpm-workspace.yaml.t3codeandt3code-devURL scheme handlers for Linux in scripts/build-desktop-artifact.ts via electron-builderprotocols, which causes the generated.desktopfile to advertise the scheme handlers.ElectronApp.requestSingleInstanceLockwithbridge.isPrimaryInstancefrom the Clerk SDK; secondary instances now callelectronApp.quit()and interrupt startup instead.resolveUserDataPathas a standalone exported Effect in DesktopAppIdentity.ts and sets Electron'suserDatapath before the Clerk bridge is created.Macroscope summarized 702ae3f.