gstack/browse
quetaifu 3c2adf81f0 feat(browse): BROWSE_NO_PROXY env var to bypass system proxy on launch
On macOS, Chromium (via Playwright) inherits the system HTTP/S proxy by
default. When the user runs a local VPN/proxy app (Shadowrocket, ClashX,
Surge, etc.) that does TLS interception, Chromium's HTTPS handshake
breaks with SSL error 1 / net_error -100, and every goto fails with
ERR_ABORTED. The renderer then crashes and kills the browse server,
triggering the familiar '[browse] Starting server...' restart loop.

curl is unaffected because curl ignores the system proxy by default,
so curl-based health checks continue to pass while browse is broken —
making this failure mode especially confusing.

Opt-in: set BROWSE_NO_PROXY=1 in the environment and browse will pass
'--proxy-server=direct://' to Chromium at launch, bypassing the system
proxy entirely. Default behavior unchanged (still inherits system proxy)
so corporate proxy users are not affected.

Repro:
  # With Shadowrocket running in HTTP-proxy mode on macOS:
  browse goto https://example.com        # ERR_ABORTED / Timeout 15000ms
  BROWSE_NO_PROXY=1 browse goto https://example.com   # 200 OK
2026-04-17 10:31:09 +08: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 feat(browse): BROWSE_NO_PROXY env var to bypass system proxy on launch 2026-04-17 10:31:09 +08:00
test fix: security wave 3 — 12 fixes, 7 contributors (v0.16.4.0) (#988) 2026-04-13 07:49:37 -10: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 feat: UX behavioral foundations + ux-audit command (v0.17.0.0) (#1000) 2026-04-14 07:47:11 -10:00
SKILL.md.tmpl feat: sidebar CSS inspector + per-tab agents (v0.13.9.0) (#650) 2026-03-30 12:51:05 -06:00