From 05018b309aaffef4706604e7bfc2039930ba0fe7 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Tue, 3 Mar 2026 16:09:39 -0600 Subject: [PATCH] prepare v0.16.0 (#596) --- .changeset/native-rust-daemon.md | 5 +++ docs/src/app/changelog/page.mdx | 56 ++++++++++++++++++++++++++++++++ docs/src/app/page.mdx | 3 +- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 .changeset/native-rust-daemon.md diff --git a/.changeset/native-rust-daemon.md b/.changeset/native-rust-daemon.md new file mode 100644 index 0000000..89621c1 --- /dev/null +++ b/.changeset/native-rust-daemon.md @@ -0,0 +1,5 @@ +--- +"agent-browser": minor +--- + +Added experimental native Rust daemon (`--native` flag, `AGENT_BROWSER_NATIVE=1` env, or `"native": true` in config). The native daemon communicates with Chrome directly via CDP, eliminating Node.js and Playwright dependencies. Supports 150+ commands with full parity to the default Node.js daemon. Includes WebDriver backend for Safari/iOS, CDP protocol codegen, request tracking, frame context management, and comprehensive e2e and parity tests. diff --git a/docs/src/app/changelog/page.mdx b/docs/src/app/changelog/page.mdx index 7000a48..e07bb71 100644 --- a/docs/src/app/changelog/page.mdx +++ b/docs/src/app/changelog/page.mdx @@ -4,6 +4,62 @@ export const metadata = pageMetadata("changelog") # Changelog +## v0.16.0 + +

March 2026

+ +### New Features + +- **Native Rust daemon (experimental).** A pure Rust daemon that communicates with Chrome directly via the Chrome DevTools Protocol (CDP), eliminating Node.js and Playwright dependencies entirely. Enable with `--native`, `AGENT_BROWSER_NATIVE=1`, or `"native": true` in your config file. Supports 150+ commands with full parity to the default Node.js daemon. + +```bash +# Via flag +agent-browser --native open example.com + +# Via environment variable +export AGENT_BROWSER_NATIVE=1 +agent-browser open example.com +``` + +Or add to `agent-browser.json`: + +```json +{"native": true} +``` + +### Architecture + + + + + + + + + + + + +
Default (Node.js)Native (--native)
RuntimeNode.js + PlaywrightPure Rust binary
ProtocolPlaywright protocolDirect CDP / WebDriver
Install sizeLarger (Node.js + npm deps)Smaller (single binary)
Browser supportChromium, Firefox, WebKitChromium, Safari (via WebDriver)
StabilityStableExperimental
+ +### What's Supported + +All core commands work in native mode: navigation, interaction (click, fill, type, press, hover, scroll, drag), observation (snapshot, screenshot, eval), state management (cookies, storage, state save/load), tabs, emulation (viewport, device, timezone, locale, geolocation), streaming, diffing, recording, and profiling. + +The native daemon also includes a WebDriver backend for Safari and iOS support. + +### Known Limitations + +- Firefox and WebKit are not yet supported (Chromium and Safari only) +- Playwright trace format is not available (uses Chrome's built-in tracing) +- HAR export is not available +- Network route interception uses CDP Fetch domain instead of Playwright's route API +- The native and Node.js daemons share the same session socket. Use `agent-browser close` before switching between modes. + +See the [Native Mode](/native-mode) page for full details. + +--- + ## v0.15.0

February 2026

diff --git a/docs/src/app/page.mdx b/docs/src/app/page.mdx index 4ba14a6..82ce664 100644 --- a/docs/src/app/page.mdx +++ b/docs/src/app/page.mdx @@ -59,7 +59,8 @@ has a unique ref like `@e1`, `@e2`. This provides: Client-daemon architecture for optimal performance: 1. **Rust CLI** - Parses commands, communicates with daemon -2. **Node.js Daemon** - Manages Playwright browser instance +2. **Node.js Daemon** (default) - Manages Playwright browser instance +3. **Native Daemon** (experimental, `--native`) - Pure Rust daemon using direct CDP, no Node.js required Daemon starts automatically and persists between commands.