Skip to content

Releases: vercel-labs/agent-browser

v0.20.6

15 Mar 02:14
c23ce44

Choose a tag to compare

Patch Changes

  • fa91c22: ### Bug Fixes

    • Stale accessibility tree reference fallback - Fixed an issue where interacting with an element whose backend_node_id had become stale (e.g. after the DOM was replaced) would fail with a Could not compute box model CDP error. Element resolution now re-queries the accessibility tree using role/name lookup to obtain a fresh node ID before retrying the operation (#806)

v0.20.5

14 Mar 23:28
5f8e993

Choose a tag to compare

Patch Changes

  • fc091d2: ### Bug Fixes

    • Daemon panic on broken stderr pipe - Replaced all eprintln! calls with writeln!(std::io::stderr(), ...) wrapped in let _ = to silently discard write errors, preventing the daemon from panicking when the parent process drops the stderr pipe during Chrome launch (#802)

v0.20.4

14 Mar 22:33
23a8b19

Choose a tag to compare

Patch Changes

  • e2ebde2: ### Bug Fixes

    • Broadcast channel lag handling - Fixed an issue where broadcast channel lag errors were incorrectly treated as stream closure, causing premature termination of event listeners in reload, response body, download, and navigation wait operations. Lagged messages are now skipped and the loop continues instead of breaking (#797)

    Improvements

    • Removed unused pnpm setup steps from the global-install CI job, simplifying the workflow configuration (#798)

v0.20.3

14 Mar 21:12
17d2785

Choose a tag to compare

Patch Changes

  • e365909: ### Bug Fixes

    • Chrome launch retry - Chrome will now retry launching up to 3 times with a 500ms delay between attempts, improving resilience against transient startup failures (#791)
    • Remote CDP snapshot hang - Resolved an issue where snapshots would hang indefinitely over remote CDP (WSS) connections by removing WebSocket message and frame size limits to accommodate large responses (e.g. Accessibility.getFullAXTree), accepting binary frames from remote proxies such as Browserless, and immediately clearing pending commands when the connection closes rather than waiting for the 30-second timeout (#792)

v0.20.2

14 Mar 19:11
fe3c1dd

Choose a tag to compare

Patch Changes

  • 944fa01: ### New Features

    • Linux musl (Alpine) builds - Added pre-built binaries for linux-musl targeting both x64 and arm64 architectures, enabling native support for Alpine Linux and other musl-based distributions without requiring glibc (#784)

    Improvements

    • Consecutive --auto-connect commands - Added support for issuing multiple consecutive --auto-connect commands without requiring a full browser relaunch; external connections are now correctly identified and reused (#786)
    • External browser disconnect behavior - When using --auto-connect or --cdp, closing the agent session now disconnects cleanly without shutting down the user's browser process

    Bug Fixes

    • Restored refs dict in --json snapshot output - The refs map containing role and name metadata for referenced elements is now correctly included in JSON snapshot responses (#787)
    • Fixed e2e test assertions for diff_snapshot and domain_filter to correctly reflect expected behavior (#783)
    • Fixed Chrome temp-dir cleanup test failing on Windows (#766)

v0.20.1

14 Mar 14:51
974d735

Choose a tag to compare

Patch Changes

  • bd05917: ### Bug Fixes

    • Fixed AX tree deserialization to accept integer nodeId and childIds values for compatibility with Lightpanda, which sends numeric IDs where Chrome sends strings (#775)
    • Fixed misleading SIGPIPE comment to accurately describe the default Rust SIGPIPE behavior and why it is reset to SIG_DFL (#776)
    • Fixed WebM recording output to use the VP9 codec (libvpx-vp9) instead of H.264, producing valid WebM files; also adds a padding filter to ensure even frame dimensions (#779)

v0.20.0

14 Mar 01:39
99c732c

Choose a tag to compare

Minor Changes

  • 235fa88: ### Full Native Rust

    • 100% native Rust -- Removed the entire Node.js/Playwright daemon. The Rust native daemon is now the only implementation. No Node.js runtime or Playwright dependency required. (#754)
    • 99x smaller install -- Install size reduced from 710 MB to 7 MB by eliminating the Node.js dependency tree.
    • 18x less memory -- Daemon memory usage reduced from 143 MB to 8 MB.
    • 1.6x faster cold start -- Cold start time reduced from 1002ms to 617ms.
    • Benchmarks -- Added benchmark suite comparing native vs Node.js daemon performance.
    • Chromium installer hardened -- Fixed zip path traversal vulnerability in Chrome for Testing installer.

    Bug Fixes

    • Fixed --headed false flag not being respected in CLI (#757)
    • Fixed "not found" error pattern in to_ai_friendly_error incorrectly catching non-element errors (#759)
    • Fixed storage local key lookup parsing and text output (#761)
    • Fixed Lightpanda engine launch with release binaries (#760)
    • Hardened Lightpanda startup timeouts (#762)

v0.19.0

13 Mar 09:04
e02bc1a

Choose a tag to compare

Minor Changes

  • 56bb92b: ### New Features

    • Browserless.io provider -- Added browserless.io as a browser provider, supported in both Node.js and native daemon paths. Connect to remote Browserless instances with --provider browserless or AGENT_BROWSER_PROVIDER=browserless. Configurable via BROWSERLESS_API_KEY, BROWSERLESS_API_URL, and BROWSERLESS_BROWSER_TYPE environment variables. (#502, #746)
    • clipboard command -- Read from and write to the browser clipboard. Supports read, write <text>, copy (simulates Ctrl+C), and paste (simulates Ctrl+V) operations. (#749)
    • Screenshot output configuration -- New global flags --screenshot-dir, --screenshot-quality, --screenshot-format and corresponding AGENT_BROWSER_SCREENSHOT_DIR, AGENT_BROWSER_SCREENSHOT_QUALITY, AGENT_BROWSER_SCREENSHOT_FORMAT environment variables for persistent screenshot settings. (#749)

    Bug Fixes

    • Fixed wait --text not working in native daemon path (#749)
    • Fixed BrowserManager.navigate() and package entry point (#748)
    • Fixed extensions not being loaded from config.json (#750)
    • Fixed scroll on page load (#747)
    • Fixed HTML retrieval by using browser.getLocator() for selector operations (#745)

v0.18.0

12 Mar 21:04
fb7185d

Choose a tag to compare

Minor Changes

  • 942b8cd: ### New Features

    • inspect command - Opens Chrome DevTools for the active page by launching a local proxy server that forwards the DevTools frontend to the browser's CDP WebSocket. Commands continue to work while DevTools is open. Implemented in both Node.js and native paths. (#736)
    • get cdp-url subcommand - Retrieve the Chrome DevTools Protocol WebSocket URL for the active page, useful for external debugging tools. (#736)
    • Native screenshot annotate - The --annotate flag for screenshots now works in the native Rust daemon, bringing parity with the Node.js path. (#706)

    Improvements

    • KERNEL_API_KEY now optional - External credential injection no longer requires KERNEL_API_KEY to be set, making it easier to use Kernel with pre-configured environments. (#687)
    • Browserbase simplified - Removed the BROWSERBASE_PROJECT_ID requirement, reducing setup friction for Browserbase users. (#625)

    Bug Fixes

    • Fixed Browserbase API using incorrect endpoint to release sessions (#707)
    • Fixed CDP connect paths using hardcoded 10s timeout instead of getDefaultTimeout() (#704)
    • Fixed lone Unicode surrogates causing errors by sanitizing with toWellFormed() (#720)
    • Fixed CDP connection failure on IPv6-first systems (#717)
    • Fixed recordings not inheriting the current viewport settings (#718)

v0.17.1

09 Mar 17:46
00a0e07

Choose a tag to compare

Patch Changes

  • 94cd888: Added support for device scale factor (retina display) in the viewport command via an optional scale parameter. Also added webview target type support for better Electron application compatibility, and the pages list now includes target type information.