From 9870a4ec49078ad3fc150c3d93605401a747af6d Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Tue, 24 Mar 2026 20:32:30 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20Windows=20browse=20=E2=80=94=20stdio=20a?= =?UTF-8?q?rray=20format=20for=20Bun=20compatibility=20(v0.11.18.2)=20(#46?= =?UTF-8?q?8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: use stdio array format for Bun Windows compatibility Bun on Windows requires stdio as ['ignore','ignore','ignore'] array, not 'ignore' string. Fixes #448, #454, #458. Closes #444. Co-Authored-By: Claude Opus 4.6 (1M context) * chore: bump version and changelog (v0.11.18.2) Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 (1M context) --- CHANGELOG.md | 6 ++++++ VERSION | 2 +- browse/src/cli.ts | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90e8335d7fe51d6a1d5792716880cc565687b3ec..56d79bc6317d8bc8b541438776d8b7fb0bcf6879 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.11.18.2] - 2026-03-24 + +### Fixed + +- **Windows browse daemon fixed.** The browse server wouldn't start on Windows because Bun requires `stdio` as an array (`['ignore', 'ignore', 'ignore']`), not a string (`'ignore'`). Fixes #448, #454, #458. + ## [0.11.18.1] - 2026-03-24 ### Changed diff --git a/VERSION b/VERSION index 53d7c74ca3d411d389d537b5cfca757785c2c382..c1e6154392ebc01ff1bd960fbb950a087c0e5abf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.11.18.1 +0.11.18.2 diff --git a/browse/src/cli.ts b/browse/src/cli.ts index 2d48ecf779cdc957c77c94d202a85f1bf3cbcd8b..25894a5dcbe82849fbaaa114dd17d19cb24d73ad 100644 --- a/browse/src/cli.ts +++ b/browse/src/cli.ts @@ -234,9 +234,9 @@ async function startServer(): Promise { const launcherCode = `const{spawn}=require('child_process');` + `spawn(process.execPath,[${JSON.stringify(NODE_SERVER_SCRIPT)}],` + - `{detached:true,stdio:'ignore',env:Object.assign({},process.env,` + + `{detached:true,stdio:['ignore','ignore','ignore'],env:Object.assign({},process.env,` + `{BROWSE_STATE_FILE:${JSON.stringify(config.stateFile)}})}).unref()`; - Bun.spawnSync(['node', '-e', launcherCode], { stdio: 'ignore' }); + Bun.spawnSync(['node', '-e', launcherCode], { stdio: ['ignore', 'ignore', 'ignore'] }); } else { // macOS/Linux: Bun.spawn + unref works correctly proc = Bun.spawn(['bun', 'run', SERVER_SCRIPT], {