diff --git a/CHANGELOG.md b/CHANGELOG.md index b07126d..82d0320 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # agent-browser +## 0.24.1 + + +### New Features + +- **Chrome profile login state reuse** - `--profile ` now resolves Chrome profile names (e.g. `Default`, `Profile 1`) and copies the profile to a temp directory to reuse login state, cookies, and extensions without modifying the original. Added `profiles` command to list available Chrome profiles with `--json` support (#1131) + +### Bug Fixes + +- Fixed **`--ignore-https-errors`** not passing `--ignore-certificate-errors` as a Chrome launch flag, causing TLS errors like `ERR_SSL_PROTOCOL_ERROR` to be rejected at the network layer before CDP could intervene (#1132) +- Fixed **orphaned Chrome processes** on daemon exit by spawning Chrome in its own process group and killing the entire group on shutdown. On Linux, `PR_SET_PDEATHSIG` ensures Chrome is killed even if the daemon is OOM-killed (#1137) +- Fixed **CDP attach hang on Chrome 144+** when connecting to real browser sessions. Targets paused waiting for the debugger after attach are now resumed with `Runtime.runIfWaitingForDebugger` (#1133) +- Fixed **stale daemon after upgrade** silently reusing the old daemon process with broken CDP behavior. The daemon now writes a `.version` sidecar file and auto-restarts on version mismatch (#1134) +- Fixed **stale daemon/socket recovery** where `close --all` failed to clean up zombie daemons and stale files. Unreachable daemons are now force-killed and orphaned socket/pid files are removed (#1136) +- Fixed **idle timeout** not being respected because the sleep future was recreated on every select loop iteration, preventing the deadline from being reached (#1110) +- Fixed **browser not relaunching** when launch options change (e.g. adding extensions to `config.json`) between consecutive launch commands (#996) +- Fixed **`auto_launch()`** not honouring `AGENT_BROWSER_PROVIDER` for cloud providers, causing non-launch commands to fall back to local Chrome instead of connecting via the provider API (#1126) +- Fixed **HAR capture missing API requests** under heavy traffic by increasing the CDP broadcast buffer from 256 to 4096 events, reducing the drain interval from 500ms to 100ms, and enabling network tracking in cross-origin iframes (#1135) + +### Tests + +- Fixed **`e2e_relaunch_on_options_change`** launching headed Chrome on CI where no display is available. The test now stays headless and only changes extensions to trigger the relaunch (#996) +- Fixed **`e2e_auth_login`** flake by reducing the SPA render delay from 1200ms to 800ms, giving more headroom within the selector wait window on slower CI runners + +### Contributors + +- @ctate +- @desenmeng +- @jin-2-kakaoent +- @snese + + ## 0.24.0 diff --git a/cli/Cargo.lock b/cli/Cargo.lock index 9cb7e8f..eac2dfd 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -45,7 +45,7 @@ dependencies = [ [[package]] name = "agent-browser" -version = "0.24.0" +version = "0.24.1" dependencies = [ "aes-gcm", "async-trait", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 7068526..f4e6ab8 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "agent-browser" -version = "0.24.0" +version = "0.24.1" edition = "2021" description = "Fast browser automation CLI for AI agents" license = "Apache-2.0" diff --git a/cli/src/native/e2e_tests.rs b/cli/src/native/e2e_tests.rs index b170cbf..56bfb54 100644 --- a/cli/src/native/e2e_tests.rs +++ b/cli/src/native/e2e_tests.rs @@ -3095,7 +3095,7 @@ async fn start_delayed_login_server( #[tokio::test] #[ignore] async fn e2e_auth_login_waits_for_delayed_spa_form_render() { - let (base_url, _server) = start_delayed_login_server(1200, 100).await; + let (base_url, _server) = start_delayed_login_server(800, 100).await; let mut state = DaemonState::new(); let profile_name = format!( @@ -3869,7 +3869,7 @@ async fn e2e_relaunch_on_options_change() { &json!({ "id": "3", "action": "launch", - "headless": false, + "headless": true, "extensions": ["/tmp/fake-extension"] }), &mut state, diff --git a/docs/src/app/changelog/page.mdx b/docs/src/app/changelog/page.mdx index c405a30..8926467 100644 --- a/docs/src/app/changelog/page.mdx +++ b/docs/src/app/changelog/page.mdx @@ -1,5 +1,27 @@ # Changelog +## v0.24.1 + +

April 4, 2026

+ +### New Features + +- **Chrome profile login state reuse** - `--profile ` now resolves Chrome profile names (e.g. `Default`, `Profile 1`) and copies the profile to a temp directory to reuse login state, cookies, and extensions without modifying the original. Added `profiles` command to list available Chrome profiles with `--json` support (#1131) + +### Bug Fixes + +- Fixed **`--ignore-https-errors`** not passing `--ignore-certificate-errors` as a Chrome launch flag, causing TLS errors like `ERR_SSL_PROTOCOL_ERROR` to be rejected at the network layer before CDP could intervene (#1132) +- Fixed **orphaned Chrome processes** on daemon exit by spawning Chrome in its own process group and killing the entire group on shutdown. On Linux, `PR_SET_PDEATHSIG` ensures Chrome is killed even if the daemon is OOM-killed (#1137) +- Fixed **CDP attach hang on Chrome 144+** when connecting to real browser sessions. Targets paused waiting for the debugger after attach are now resumed with `Runtime.runIfWaitingForDebugger` (#1133) +- Fixed **stale daemon after upgrade** silently reusing the old daemon process with broken CDP behavior. The daemon now writes a `.version` sidecar file and auto-restarts on version mismatch (#1134) +- Fixed **stale daemon/socket recovery** where `close --all` failed to clean up zombie daemons and stale files. Unreachable daemons are now force-killed and orphaned socket/pid files are removed (#1136) +- Fixed **idle timeout** not being respected because the sleep future was recreated on every select loop iteration, preventing the deadline from being reached (#1110) +- Fixed **browser not relaunching** when launch options change (e.g. adding extensions to `config.json`) between consecutive launch commands (#996) +- Fixed **`auto_launch()`** not honouring `AGENT_BROWSER_PROVIDER` for cloud providers, causing non-launch commands to fall back to local Chrome instead of connecting via the provider API (#1126) +- Fixed **HAR capture missing API requests** under heavy traffic by increasing the CDP broadcast buffer from 256 to 4096 events, reducing the drain interval from 500ms to 100ms, and enabling network tracking in cross-origin iframes (#1135) + +--- + ## v0.24.0

April 2, 2026

diff --git a/docs/src/app/commands/page.mdx b/docs/src/app/commands/page.mdx index 5f1b4ac..25b7868 100644 --- a/docs/src/app/commands/page.mdx +++ b/docs/src/app/commands/page.mdx @@ -329,6 +329,14 @@ agent-browser session # Show current session name agent-browser session list # List active sessions ``` +## Chrome profiles + +```bash +agent-browser profiles # List available Chrome profiles +agent-browser profiles --json # List profiles as JSON +agent-browser --profile Default open https://gmail.com # Reuse a profile's login state +``` + ## Dashboard ```bash diff --git a/package.json b/package.json index 11abcfc..f80729a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agent-browser", - "version": "0.24.0", + "version": "0.24.1", "description": "Browser automation CLI for AI agents", "type": "module", "files": [ diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index c1fb54a..ed91f13 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -1,6 +1,6 @@ { "name": "dashboard", - "version": "0.24.0", + "version": "0.24.1", "private": true, "scripts": { "dev": "next dev",