This release adds 2 notable features for engineering teams evaluating rollout.
Published 14h
MCP Browser & Automation
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
ai-agents
anti-detection
automation
browser-automation
cdp
chrome-devtools-protocol
+4 more
mcp
stealth-browser
typescript
web-scraping
Summary
AI summaryFixed goto() hanging on same‑document navigation and enabled evaluate() to accept functions.
Full changelog
Published to npm as @achamm/[email protected].
Added
Browser.connect(endpoint)+browser.pages()— drive an already-running Chrome. Chrome locks auser-data-dir, so the profile holding your real logged-in sessions can't be opened by a second instance; previously the only options were killing the browser holding it or copying the profile and losing the session. This is what makes the sites that matter reachable, because Google, Reddit, Meta and TikTok score the session, not the IP.close()on an attached browser detaches only — it never kills a process it didn't start.evaluate()accepts a function, not just a string.evaluate(() => document.title)used to stringify to a function object thatreturnByValuecan't serialise, so CDP replied-32602— an error indistinguishable from a protocol regression.
Fixed
goto()no longer hangs on a same-document navigation. A#fragment(or any history/pushStatenav) loads no new document, soPage.loadEventFirednever fires and the waiter ran to the full timeout. Measured on Chrome 150: 15,001 ms for a fragment vs ~300 ms for a real navigation. Now racesPage.navigatedWithinDocumentagainst the load waiter. Verified non-vacuous: an unresolvable host still rejects in 80 ms, a 404 still reports 404.
Full notes in CHANGELOG.md.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Veil
All releases →Related context
Beta — feedback welcome: [email protected]