gstack/browse
Oliver Southgate f48623ecac fix: isProcessAlive uses signal-0 on all platforms, not tasklist
The Windows branch spawned tasklist per probe. Two failure modes:
(1) every call flashed a console window from console-less daemons —
the terminal-agent watchdog probes once per 60s tick for the whole
session (#1952); (2) node spawnSync reports a timeout via result.error
without throwing, so a slow tasklist (>3s under load) read as empty
stdout -> "dead" for a LIVE agent. A false "dead" makes the watchdog
clear the live agent record and respawn a duplicate around it, while
killAgentByRecord consults the same false probe and skips the kill —
the split-brain observed in #2151.

process.kill(pid, 0) is a pure OpenProcess existence check on Windows
under both Node and Bun (verified on Windows 11, node 22 / bun 1.3.14:
alive -> true, dead -> false, PID 4 System -> EPERM -> true). Unifying
on signal-0 also fixes the old Unix branch collapsing EPERM
(exists-but-unsignallable) to "dead", as proposed in #1952.

Tests: EPERM-implies-alive case, plus a static tripwire rejecting any
tasklist invocation in error-handling.ts.

Fixes #1952. Fixes the split-brain trigger in #2151.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 21:23:39 +01:00
..
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: isProcessAlive uses signal-0 on all platforms, not tasklist 2026-07-02 21:23:39 +01:00
test fix: isProcessAlive uses signal-0 on all platforms, not tasklist 2026-07-02 21:23:39 +01:00
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.58.5.0 feat: first-run activation scaffold + gstack router front door (#2078) 2026-06-25 09:42:45 -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