gstack/browse
Garry Tan 9d7fb1c3c2
fix: browse server lock fails when .gstack/ dir missing
acquireServerLock() tried to create a lock file in .gstack/browse.json.lock
but ensureStateDir() was only called inside startServer() — after lock
acquisition. When .gstack/ didn't exist, openSync threw ENOENT, the catch
returned null, and every invocation thought another process held the lock.

Fix: call ensureStateDir() before acquireServerLock() in ensureServer().

Also skip DNS rebinding resolution for localhost/private IPs to eliminate
unnecessary latency in concurrent E2E test sessions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:27:11 -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: Windows support — Node.js server fallback for Playwright (#255) 2026-03-20 12:22:11 -07:00
src fix: browse server lock fails when .gstack/ dir missing 2026-03-23 15:27:11 -07:00
test merge: PR #275 - fix: support Linux Chromium cookie import 2026-03-22 22:52:36 -07:00
SKILL.md fix: shorten auto-trigger guard to stay under 1024-char description limit 2026-03-22 22:54:36 -07:00
SKILL.md.tmpl feat: browse handoff — headless-to-headed browser switching (v0.7.4) (#201) 2026-03-19 00:38:58 -05:00