v0.33.1

vercel-labs/agent-browserv0.33.1Jul 28, 2026by github-actions[bot]

AI Summary

Adds a default idle timeout to the daemon to prevent resource leaks and improves tab recovery.

Key Highlights

  • Daemon now ships a default idle timeout of 1 hour to close the browser and exit if no commands are received.
  • Fixes tab recovery and selection to avoid daemon hangs on Memory Saver-discarded tabs.
  • Fixes a11y selector errors to report invalid CSS selectors cleanly.

Breaking Changes

  • The daemon now ships a default idle timeout of 1 hour.

Full Release Notes

### Behavior Changes

- 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 (#1605)

### Bug Fixes

- Fixed **tab recovery and selection** to avoid daemon hangs on Memory Saver-discarded tabs by selecting a live renderer on CDP connect, reviving tabs on switch or after close, treating dialog-blocked tabs as live, preserving refs on rejected operations, and surfacing recovery state across CLI, JSON, and MCP output (#1543)
- Fixed **a11y selector errors** to report invalid CSS selectors cleanly instead of exposing raw browser evaluation stack traces in text and JSON output (#1604)

### Contributors

- @ctate
- @Railly
- @joelhooks
- @jadenfix