gstack/browse
Nicolas Gomes Ferreira Dos Santos 952a3220fd fix(browse): defensive hardening for cookie-import CDP pipe path
Three narrow robustness fixes flagged during review:

1. CdpPipeTransport.readStream 'end' handler now sets this.closed = true
   before aborting pending. Without this, a send() after end would queue
   a promise forever (the 'closed' guard wouldn't trigger).

2. extractCookiesViaCdpPipe guards cookiesResp.cookies with ?? [] so
   a CDP response missing the cookies field returns an empty array
   instead of throwing TypeError.

3. extractCookiesViaCdpPipe validates attached.sessionId is a non-empty
   string. flatten:true should always return one, but defensive guards
   beat silent fallback to the browser-level session.

Three new tests lock each fix:
- send-after-end rejects with cdp_error/closed
- empty getAllCookies response returns []
- attachToTarget without sessionId throws cdp_error

Refs #1136.
2026-04-23 21:32:25 -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: ngrok Windows build + close CI error-swallowing gap (v0.18.0.1) (#1024) 2026-04-16 13:49:04 -07:00
src fix(browse): defensive hardening for cookie-import CDP pipe path 2026-04-23 21:32:25 -07:00
test fix(browse): defensive hardening for cookie-import CDP pipe path 2026-04-23 21:32:25 -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 feat(v1.9.0.0): gbrain-sync — cross-machine gstack memory (#1151) 2026-04-23 17:54:54 -07:00
SKILL.md.tmpl feat(browse): Puppeteer parity — load-html, screenshot --selector, viewport --scale, file:// (v1.1.0.0) (#1062) 2026-04-18 23:25:33 +08:00