gstack/browse
gstack 46b2e35917 feat(browse): comprehensive anti-bot stealth patches
Add stealth.ts module that addresses all known automation fingerprints:

1. navigator.webdriver property deletion (not just value override) -
   bot detectors check property existence via 'webdriver' in navigator
2. WebGL renderer spoofing (SwiftShader → Apple M1 Pro) - SwiftShader
   is the #1 giveaway of container/headless environments
3. Proper PluginArray that passes instanceof checks - raw arrays fail
   PluginArray instanceof which DataDome/Cloudflare check
4. Complete chrome object (app, runtime, loadTimes, csi) - shallow
   stubs missing chrome.app get flagged
5. CDP runtime artifact cleanup (cdc_*, $cdc_*, __webdriver*)
6. Permissions API normalization (prompt, not denied)
7. Media devices presence for containers
8. Function.toString() protection - overridden functions look native

Passes SannySoft (bot.sannysoft.com) 100%. Replaces inline patches in
browser-manager.ts with shared module used by both headless launch()
and headed launchHeaded() paths.

Tested against: NYT, LinkedIn, Google, Bloomberg, BleepingComputer,
Brave Search, DuckDuckGo - all previously blocked from automation
browsers, all now pass through.

Remaining hard targets (Reddit, FT, WSJ) blocked by IP reputation
checks beyond browser fingerprinting.
2026-04-21 02:45:00 +00: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 feat(browse): comprehensive anti-bot stealth patches 2026-04-21 02:45:00 +00:00
test feat(security): ML prompt injection defense for sidebar (v1.4.0.0) (#1089) 2026-04-20 22:18:37 +08: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.4.0.0): /make-pdf — markdown to publication-quality PDFs (#1086) 2026-04-20 13:20:30 +08: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