From 66f4afc9e191b3114c11fb8729529867ad45ac81 Mon Sep 17 00:00:00 2001 From: ChocoMilk#4759 Date: Tue, 30 Dec 2025 14:41:22 +0900 Subject: [PATCH] Add cross-platform browser support (Windows/Linux) - Windows: use `cmd /c start` - Linux: use `xdg-open` - macOS: keep existing `open` --- apps/hook/server/index.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/apps/hook/server/index.ts b/apps/hook/server/index.ts index d3d4ca30..77caacec 100644 --- a/apps/hook/server/index.ts +++ b/apps/hook/server/index.ts @@ -73,13 +73,22 @@ const server = Bun.serve({ // Log to stderr so it doesn't interfere with hook stdout console.error(`Plannotator server running on http://localhost:${server.port}`); -// Open browser -try { - await $`open http://localhost:${server.port}`.quiet(); -} catch { - // Fallback for non-macOS - console.error(`Open browser manually: http://localhost:${server.port}`); -} +// Open browser - cross-platform support + const url = `http://localhost:${server.port}`; + console.error(`Plannotator server running on ${url}`); + + try { + const platform = process.platform; + if (platform === "win32") { + await $`cmd /c start ${url}`.quiet(); + } else if (platform === "darwin") { + await $`open ${url}`.quiet(); + } else { + await $`xdg-open ${url}`.quiet(); + } + } catch { + console.error(`Open browser manually: ${url}`); + } // Wait for user decision (blocks until approve/deny) const result = await decisionPromise;