fix(desktop): mac start:desktop crash from rewritten framework symlinks#3058
fix(desktop): mac start:desktop crash from rewritten framework symlinks#3058TheIcarusWings wants to merge 1 commit into
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 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)
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 |
ApprovabilityVerdict: Approved This is a targeted bug fix that adds You can customize Macroscope's approvability policy. Learn more. |
buildMacLauncher copies Electron.app with cpSync, which rewrites the framework's relative symlinks (Resources -> Versions/Current/Resources) into absolute paths pointing back into node_modules. Sandboxed helper processes cannot follow symlinks that escape the app bundle, so `pnpm start:desktop` crashed on macOS with repeated "icudtl.dat not found in bundle" and a fatal unusable GPU process. Pass verbatimSymlinks to keep the bundle self-contained. Also bump LAUNCHER_VERSION so previously staged bundles with rewritten symlinks are invalidated and re-copied instead of being reused by the metadata check.
43d6758 to
bd0555e
Compare
Dismissing prior approval to re-evaluate bd0555e
pnpm start:desktopcrashed at launch on macOS with repeated "icudtl.dat not found in bundle" and a fatal unusable GPU process.Root cause:
buildMacLaunchercopiesElectron.appinto.electron-runtime/withcpSync, which by default rewrites the framework's relative symlinks (such asResources -> Versions/Current/Resources) into absolute paths pointing back intonode_modules. Electron's sandboxed helper processes cannot follow symlinks that escape the app bundle, so ICU data lookup fails and every helper crashes. Dev mode is unaffected because it execs the original bundle; only the production start path runs the copy.Fix: pass
verbatimSymlinks: trueso the staged bundle stays self-contained, and bumpLAUNCHER_VERSIONso previously staged bundles with rewritten symlinks are invalidated and re-copied instead of being reused by the metadata check.Verified by reproducing the crash with a minimal Electron app against the broken copied bundle, then confirming
pnpm build && pnpm start:desktoplaunches cleanly after the fix (window up, GPU and network helpers alive, no ICU errors). Also verified the version bump re-stages an existing stale bundle without manual deletion.🤖 Generated with Claude Code