gstack/browse
Minseo Lee 93f08f2a34 fix(browse): drop manual Sec-WebSocket-Protocol echo in terminal-agent /ws
Bun >= 1.3 auto-echoes the first offered subprotocol in server.upgrade(),
so the agent's explicit echo header produced a duplicate
Sec-WebSocket-Protocol response header. Strict WebSocket clients
(Chromium, python websockets) reject that handshake per RFC 6455, which
left the sidebar Terminal pane permanently disconnected: /pty-session
minted fine, but new WebSocket(url, ['gstack-pty.' + token]) never
completed.

Fix verified end-to-end on Bun 1.3.6 against a live agent: single
protocol header in the 101, handshake accepted, claude PTY spawns and
responds in the sidebar.

Adds a raw-socket regression test that counts Sec-WebSocket-Protocol
header lines in the upgrade response (Headers.get normalizes duplicates
away, so fetch-level assertions can't see this class of bug).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-11 16:39:04 +09: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(browse): drop manual Sec-WebSocket-Protocol echo in terminal-agent /ws 2026-08-11 16:39:04 +09:00
test fix(browse): drop manual Sec-WebSocket-Protocol echo in terminal-agent /ws 2026-08-11 16:39:04 +09: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