gstack/browse
Jayesh Betala 00303ebf86 fix(browse): stop isProcessAlive from flashing a Windows console every watchdog tick
On Windows, isProcessAlive() shelled out to `tasklist` via Bun.spawnSync.
Windows gives that child its own console window, so the terminal-agent
watchdog's per-tick existence check (default 60s) flashed a conhost.exe
window for the entire headed session — purely cosmetic but a constant,
unexplained blink (#1952). macOS/Linux stayed silent because their branch
is a `process.kill(pid, 0)` syscall that spawns nothing.

Unify on signal-0 across all platforms — exactly what the parent watchdog
two functions away already does. Node/Bun implement `process.kill(pid, 0)`
on Windows via OpenProcess: a pure existence check, no child process, no
window. This also fixes a latent correctness edge: the old branch collapsed
every error to false, so a live-but-unsignalable process (EPERM) read as
dead. Now ESRCH -> dead, EPERM -> alive.

Tests: existing alive/dead probes still pass; add an EPERM-as-alive case and
a static tripwire asserting the probe never reintroduces `tasklist`/spawn
(proven to fail on the old body). 9/9 green in error-handling.test.ts.

Fixes #1952

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 00:22:48 +05:30
..
bin feat: multi-agent support — gstack works on Codex, Gemini CLI, and Cursor (v0.9.0) (#226) 2026-03-19 18:20:50 -07:00
scripts fix: ngrok Windows build + close CI error-swallowing gap (v0.18.0.1) (#1024) 2026-04-16 13:49:04 -07:00
src fix(browse): stop isProcessAlive from flashing a Windows console every watchdog tick 2026-06-12 00:22:48 +05:30
test fix(browse): stop isProcessAlive from flashing a Windows console every watchdog tick 2026-06-12 00:22:48 +05:30
PLAN-snapshot-dropdown-interactive.md fix: snapshot -i auto-detects dropdown/popover interactive elements (#845) 2026-04-05 22:57:45 -07:00
SKILL.md v1.57.8.0 feat: browse js/eval --out render-to-file (canonical Chromium for offline rendering) (#1929) 2026-06-09 21:02:30 -07:00
SKILL.md.tmpl v1.57.8.0 feat: browse js/eval --out render-to-file (canonical Chromium for offline rendering) (#1929) 2026-06-09 21:02:30 -07:00