esbuild was emitting preload.js as ESM (format:"esm"), but Electron loads preload scripts via its sandboxed Node context, which is CJS. With an ESM preload, the contextBridge.exposeInMainWorld calls silently no-op, leaving window.fusionShell / window.fusionAPI undefined in the renderer — which is why the dashboard always fell through to "Can't reach the Fusion backend" and DesktopLaunchGate always logged "window.fusionShell unavailable; bypassing". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.7 KiB
2.7 KiB