fix(desktop): allow V1 and V2 to run concurrently - #12480
Conversation
This comment has been minimized.
This comment has been minimized.
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: 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: Not approved Macroscope's review found this PR not approvable — This PR introduces startup-time profile migration and changes the production Electron user-data default to Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more. |
bb072a5 to
1affc9a
Compare
e5a54ce to
451b93f
Compare
bbe3dd9 to
01c2162
Compare
451b93f to
dafb1a0
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
… bridge (QM-189) On win32 resolveUserDataPath (from pingdotgg#12480) inspects the profile dirs through the async Node FileSystem, which yields to the event loop; Electron emits ready first and createClerkBridge's protocol.registerSchemesAsPrivileged throws, so every Windows launch exits with DesktopClerkBridgeInitializationError. Provide a node:fs-backed synchronous FileSystem for that one call. Windows-only deploy branch; macOS returns before any I/O.
Opening V2 while V1/nightly is running can leave the app with no environments because both desktop processes open the same Chromium profile. In a macOS two-process reproduction, the second process fails to open
t3code:connection-runtimewith an IndexedDB backing-store lock error.Packaged V2 now uses its own
t3code-v2profile and never falls back to the V1 profile. On Windows, the new profile imports onlyLocal Stateonce to preserve the encryption keys used by saved connection credentials. All profile selection and Windows initialization now live inDesktopUserData.resolveUserDataPath, shared by startup and the Clerk bridge. Development profile handling stays unchanged. This profile is Electron storage under the OS application-data directory; the server T3 home and its databases stay where they are.Targets #2829.
Validation:
Before, shared profile:
After, separate V2 profile:
Browser cookies and caches do not migrate, so websites opened inside V2 may require signing in again.
Prepared with Codex.