Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 24 additions & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,31 +43,36 @@ jobs:
echo "Sandbox package version: $SANDBOX_VERSION"
echo "Eve package version: $EVE_VERSION"

NPM_VERSION=$(npm view agent-browser version 2>/dev/null || echo "0.0.0")
SANDBOX_NPM_VERSION=$(npm view @agent-browser/sandbox version 2>/dev/null || echo "0.0.0")
EVE_NPM_VERSION=$(npm view @agent-browser/eve version 2>/dev/null || echo "0.0.0")
if [ "$GITHUB_REPOSITORY" = "vercel-labs/agent-browser" ]; then
NPM_VERSION=$(npm view agent-browser version 2>/dev/null || echo "0.0.0")
SANDBOX_NPM_VERSION=$(npm view @agent-browser/sandbox version 2>/dev/null || echo "0.0.0")
EVE_NPM_VERSION=$(npm view @agent-browser/eve version 2>/dev/null || echo "0.0.0")
else
NPM_VERSION="$LOCAL_VERSION"
SANDBOX_NPM_VERSION="$SANDBOX_VERSION"
EVE_NPM_VERSION="$EVE_VERSION"
fi
echo "npm version: $NPM_VERSION"
echo "@agent-browser/sandbox npm version: $SANDBOX_NPM_VERSION"
echo "@agent-browser/eve npm version: $EVE_NPM_VERSION"

if [ "$LOCAL_VERSION" != "$NPM_VERSION" ]; then
if [ "$GITHUB_REPOSITORY" = "vercel-labs/agent-browser" ] && [ "$LOCAL_VERSION" != "$NPM_VERSION" ]; then
echo "Version changed: $NPM_VERSION -> $LOCAL_VERSION"
echo "should_release=true" >> "$GITHUB_OUTPUT"
echo "needs_github_release=true" >> "$GITHUB_OUTPUT"
else
echo "Version unchanged on npm, skipping build and publish"
echo "Skipping npm publish"
echo "should_release=false" >> "$GITHUB_OUTPUT"
fi

# Check if GitHub release exists; it may be missing if a prior run
# published to npm but failed before creating the release.
TAG="v$LOCAL_VERSION"
if gh release view "$TAG" &>/dev/null; then
echo "GitHub release $TAG exists"
echo "needs_github_release=false" >> "$GITHUB_OUTPUT"
else
echo "GitHub release $TAG is missing, will rebuild and create it"
echo "needs_github_release=true" >> "$GITHUB_OUTPUT"
fi
# Check independently because a prior run may have published to npm
# but failed before creating the GitHub release.
TAG="v$LOCAL_VERSION"
if gh release view "$TAG" &>/dev/null; then
echo "GitHub release $TAG exists"
echo "needs_github_release=false" >> "$GITHUB_OUTPUT"
else
echo "GitHub release $TAG is missing, will rebuild and create it"
echo "needs_github_release=true" >> "$GITHUB_OUTPUT"
fi
if [ "$SANDBOX_VERSION" != "$SANDBOX_NPM_VERSION" ]; then
echo "Sandbox package version changed: $SANDBOX_NPM_VERSION -> $SANDBOX_VERSION"
Expand Down Expand Up @@ -233,7 +238,7 @@ jobs:
publish:
name: Publish to npm
needs: [check-release, build-binaries]
if: needs.check-release.outputs.should_release == 'true'
if: github.repository == 'vercel-labs/agent-browser' && needs.check-release.outputs.should_release == 'true'
runs-on: ubuntu-latest
timeout-minutes: 15
environment: Release
Expand Down Expand Up @@ -312,6 +317,7 @@ jobs:
needs: [check-release, publish]
if: >-
always() &&
github.repository == 'vercel-labs/agent-browser' &&
needs.check-release.outputs.should_publish_sandbox == 'true' &&
(
needs.check-release.outputs.should_release != 'true' ||
Expand Down Expand Up @@ -352,6 +358,7 @@ jobs:
needs: [check-release, publish, publish-sandbox]
if: >-
always() &&
github.repository == 'vercel-labs/agent-browser' &&
needs.check-release.outputs.should_publish_eve == 'true' &&
(
needs.check-release.outputs.should_release != 'true' ||
Expand Down
10 changes: 8 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,23 @@

- The daemon now ships a **default idle timeout of 1 hour**: after an hour with no commands or dashboard input it saves configured restore state, closes the browser, and exits, so integrations that die without calling `close` no longer leak the daemon and its Chrome tree indefinitely. Sessions without `--restore` or another restore key discard transient browser state and open tabs when they shut down. Set `AGENT_BROWSER_IDLE_TIMEOUT_MS=0` to restore the old always-persist behavior, or any other value to tune it. Dashboard mouse, keyboard, and touch input reset the timer. The default never closes headed browsers, including Safari and iOS WebDriver sessions, or user-attached browsers that may be in direct human use. Provider-owned cloud browsers remain eligible for cleanup, and an explicitly configured timeout applies to all browsers, as before.

## 0.33.0
## 0.33.0-vm0.1

<!-- release:start -->
### Bug Fixes

- Changed the Rust HTTP and WebSocket clients to trust native system roots, allowing CDP connections through enterprise proxies with an installed private CA.
<!-- release:end -->

## 0.33.0

### New Features

- Added **axe-core accessibility audits** with `agent-browser a11y [url]`, WCAG tag filtering, selector scoping, iframe-aware text and JSON results, an embedded offline and CSP-safe audit engine, and a matching MCP tool (#1596)

### Contributors

- @ctate
<!-- release:end -->

## 0.32.4

Expand Down
86 changes: 64 additions & 22 deletions cli/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "agent-browser"
version = "0.33.0"
version = "0.33.0-vm0.1"
edition = "2021"
description = "Fast browser automation CLI for AI agents"
license = "Apache-2.0"
Expand All @@ -17,12 +17,12 @@ dirs = "5.0"
base64 = "0.22"
getrandom = "0.2"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "io-util", "time", "sync", "signal", "process"] }
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] }
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-native-roots"] }
futures-util = "0.3"
url = "2"
uuid = { version = "1", features = ["v4"] }
image = "0.25"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-webpki-roots", "stream"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-native-roots", "stream"] }
sha2 = "0.10"
aes-gcm = "0.10"
async-trait = "0.1"
Expand Down
10 changes: 10 additions & 0 deletions docs/src/app/changelog/page.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## v0.33.0-vm0.1

<p className="text-[#888] text-sm">July 25, 2026</p>

### Bug Fixes

- Changed the Rust HTTP and WebSocket clients to trust native system roots, allowing CDP connections through enterprise proxies with an installed private CA.

---

## v0.33.0

<p className="text-[#888] text-sm">July 23, 2026</p>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-browser",
"version": "0.33.0",
"version": "0.33.0-vm0.1",
"description": "Browser automation CLI for AI agents",
"type": "module",
"packageManager": "pnpm@11.1.3",
Expand Down
2 changes: 1 addition & 1 deletion packages/@agent-browser/eve/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@agent-browser/eve",
"version": "0.33.0",
"version": "0.33.0-vm0.1",
"description": "eve extension that gives agents a full browser automation tool set backed by agent-browser",
"type": "module",
"sideEffects": false,
Expand Down
2 changes: 1 addition & 1 deletion packages/@agent-browser/sandbox/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@agent-browser/sandbox",
"version": "0.33.0",
"version": "0.33.0-vm0.1",
"description": "Helpers for running agent-browser inside sandbox runtimes",
"type": "module",
"sideEffects": false,
Expand Down
2 changes: 1 addition & 1 deletion packages/@agent-browser/sandbox/src/version.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const AGENT_BROWSER_SANDBOX_VERSION = "0.33.0";
export const AGENT_BROWSER_SANDBOX_VERSION = "0.33.0-vm0.1";
2 changes: 1 addition & 1 deletion packages/dashboard/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "dashboard",
"version": "0.33.0",
"version": "0.33.0-vm0.1",
"private": true,
"scripts": {
"dev": "next dev",
Expand Down
Loading