gstack/browse
Garry Tan 4122721eb0
fix(browse): surface non-EEXIST errors in acquireServerLock instead of masking them
acquireServerLock caught every open failure as if the lock were held:
EACCES/EROFS/ENOENT surfaced as phantom "another process holds the lock"
(null return, no diagnostics), and a failed stale-lock read or unlink was
swallowed the same way. Each failure class now logs a coded, pathed
diagnostic: non-EEXIST open errors, holder-PID read errors (ENOENT retries
the acquire — the holder released between open and read), and stale-lock
unlink errors. Four-case unit test included.

Closes #1084.

Contributed by @jbetala7 (PR #1725); same fix independently by
@JiayuuWang (PR #1097).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-14 20:21:00 -07: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(build): escape literal braces in the bun:sqlite stub regex 2026-08-14 20:20:59 -07:00
src fix(browse): surface non-EEXIST errors in acquireServerLock instead of masking them 2026-08-14 20:21:00 -07:00
test fix(browse): surface non-EEXIST errors in acquireServerLock instead of masking them 2026-08-14 20:21:00 -07: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 fix(preamble): update_check:false gates the prose, not just the binary 2026-08-14 20:20:55 -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