From ca1cf9a3d112b7e1d84277d9434becbf405eec4c Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Mon, 20 Jul 2026 12:54:46 +0300 Subject: [PATCH] feat: enable React Scan in web HMR dev mode Adds a new `hmr-react-scan` web dev option in `oc-dev` Turns on React Scan via `VITE_ENABLE_REACT_SCAN` for that mode Documents Electron workspace trust so fresh installs fetch the runtime automatically --- packages/electron/README.md | 2 ++ packages/electron/package.json | 3 +++ scripts/oc-dev.mjs | 7 +++++-- 3 files changed, 10 insertions(+), 2 deletions(-) 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') {