diff --git a/packages/electron/README.md b/packages/electron/README.md index 101d19b4..9d42437b 100644 --- a/packages/electron/README.md +++ b/packages/electron/README.md @@ -38,6 +38,8 @@ bun run electron:dev `bun run electron:dev` starts the web dev server with HMR, then launches Electron against `packages/electron/main.mjs`. +The Electron workspace package trusts Electron's install script so `bun install` downloads the platform runtime in fresh checkouts and worktrees. + Useful variants: ```bash diff --git a/packages/electron/package.json b/packages/electron/package.json index 28925e54..6864d60c 100644 --- a/packages/electron/package.json +++ b/packages/electron/package.json @@ -17,6 +17,9 @@ "electron": "^41.2.1", "electron-builder": "^26.0.0" }, + "trustedDependencies": [ + "electron" + ], "desktopPrerequisites": [ "Electron runtime dependencies installed via bun install", "Bun available for sidecar compilation", diff --git a/scripts/oc-dev.mjs b/scripts/oc-dev.mjs index c6b2226e..43e6c990 100755 --- a/scripts/oc-dev.mjs +++ b/scripts/oc-dev.mjs @@ -64,7 +64,7 @@ Options: --deployment-mode --remote-id Remote deployment id from ${configPath} --target Compatibility alias for remote deployment selection - --web-mode + --web-mode --mobile-mode --mobile-task --adb-address Wireless ADB address for android-connect @@ -409,11 +409,14 @@ async function deployRemoteWeb(options, config) { async function startWebDev(options) { const mode = await chooseValue(options.webMode, [ { value: 'hmr', label: 'Web HMR' }, + { value: 'hmr-react-scan', label: 'Web HMR + React Scan' }, { value: 'hmr-lan', label: 'Web HMR LAN/mobile' }, { value: 'full', label: 'Web prod-like' }, ], 'Select web dev mode'); - if (mode === 'hmr-lan') { + if (mode === 'hmr-react-scan') { + run('bun', ['run', 'dev:web:hmr'], { env: { VITE_ENABLE_REACT_SCAN: '1' } }); + } else if (mode === 'hmr-lan') { log.info('Starting web HMR LAN/mobile loop. Open the LAN URL printed after startup.'); run('bun', ['run', 'dev:web:hmr'], { env: { OPENCHAMBER_HMR_HOST: '0.0.0.0' } }); } else if (mode === 'full') {