Fixes bug where `browser-use` CLI installation failed if the user had
installed via curl and note Homebrew.
`install_uv` checked `command -v uv` before adding `~/.local/bin` to
PATH. This worked for Homebrew but not for curl-based installs, because
Homebrew installs to a directory already in PATH.
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Fixes `browser-use` CLI installs failing when `uv` was installed via the
curl script, and makes the installer script executable. We now add
common `uv` paths to PATH before detection so it works for both curl and
Homebrew installs.
- **Bug Fixes**
- Prepend `$HOME/.local/bin` and `$HOME/.cargo/bin` to PATH before
`command -v uv`; drop the redundant export after install.
- Mark `browser_use/skill_cli/install.sh` as executable so it can run
directly.
<sup>Written for commit fae8036728.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Bump the `browser-use` package version from 0.12.2 to 0.12.3 in
`pyproject.toml` to prepare the 0.12.3 release.
<sup>Written for commit 45bff34a18.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Tightens CI workflow permissions and addresses dependency advisories to
reduce risk.
- **Security**
- Set `permissions: contents: read` for `install-script`, `lint`, and
`package` workflows; set `permissions: {}` for `cloud_evals`.
- **Dependencies**
- Removed unused `authlib`; bumped `pypdf` to `6.9.1` and `pillow` to
`12.1.1`.
<sup>Written for commit 3cd7841052.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Fixes broken extension loading on Chrome 145+ by migrating defaults to
Manifest V3 and removing Chrome flags that block unpacked extensions.
Extensions now load reliably in MV3-only environments.
- **Bug Fixes**
- Stopped passing flags that block extensions on 145+
(`--disable-component-extensions-with-background-pages`,
`--test-type=gpu`).
- Replaced MV2 `uBlock Origin` with MV3 `uBlock Origin Lite`; removed
`ClearURLs` (MV2).
- Added a manifest check to skip MV2 extensions and log a warning.
<sup>Written for commit 29da480659.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
New skill providing documentation reference for writing Python code
against the browser-use library and making Cloud REST API calls.
Condensed from CLOUD.md (2700 lines of OpenAPI YAML → 530 lines of
tables) and AGENTS.md (1021 lines → 762 lines with markup stripped and
sections deduplicated).
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds two skills, `open-source` and `cloud`, with focused docs for the
`browser-use` Python library and Cloud APIs/SDKs. Replaces the old
combined docs skill with granular references, a v2/v3 API split with
REST examples, and three integration guides.
- **New Features**
- Split into `skills/open-source/*` (quickstart, models,
agent/browser/tools/actor, integrations/MCP, monitoring, examples) and
`skills/cloud/*` (quickstart/pricing/FAQ, v2 REST and v3 Agent API,
direct CDP browser API, sessions/profiles/1Password, features,
patterns).
- Added guides: chat UI (v3 with `liveUrl`), subagent (Cloud SDK), and
tools integration; removed open‑source imports from cloud guides.
Deleted the old `browser-use-docs` skill. Updated routing for separate
v2/v3 API files.
- Expanded v3 docs with full REST endpoints and polling, plus CDP
discovery and auto‑lifecycle details in the browser API.
- **Bug Fixes**
- v2 file upload now uses multipart POST with presigned form fields;
examples include all returned fields.
- Agent and timing fixes: defaults updated (`max_actions_per_step=5`,
`max_failures=5`, `use_vision=True`, `step_timeout=180`), `llm_timeout`
auto‑detection, `max_steps=500` (was 100), and NavigateToUrl timeout 30s
(was 15s).
- Provider/env fixes and docs polish: correct `ChatVercel`
(`provider_options.gateway`) and `AI_GATEWAY_API_KEY`; use `uv pip
install browser-use-sdk`; add `try/finally` cleanup and guard
`pw.stop()`; define `session.id` before uploads; add missing `await` on
`get_usage_summary()`; distinct MCP server name; fix TOC anchor and
relative link; set full v3 base URL; wrap chat‑ui Python example in
`async def main()` with `asyncio.run()` (removed duplicate sleep).
- Cloud corrections: v3 pricing updated (BU Mini output $4.20, BU Max
$18.00); Selenium `debugger_address` now strips `/devtools/browser/`
suffix; webhooks use `type`/`payload` with 5‑min replay protection and
sorted‑key signature verification.
- Selenium CDP connection examples now handle `wss://` URLs correctly;
webhook examples add a JSON parse guard.
<sup>Written for commit 318eb3b41e.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
- subagent.md: fix TOC anchor to match renamed heading (#python-agents-cloud-sdk)
- subagent.md: fix relative link to ../features.md from guides/ subdir
- SKILL.md: use full v3 base URL instead of .../api/v3
…back
- AGI-569: after any click that opens a new tab, automatically dispatch
SwitchTabEvent so the agent lands on the new page immediately instead of
requiring a manual switch step (~877 occurrences)
- AGI-548: for <input type="checkbox/radio">, capture checked state
before the CDP mouse click and verify it toggled afterward; if unchanged
(custom-styled or shadow-DOM-backed inputs), fall back to JS
element.click() and report the final checked state in metadata (~1,241
occurrences)
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Automatically switch to newly opened tabs after clicks and make
checkbox/radio interactions reliable with a JS fallback. Addresses
AGI-569 and AGI-548 to improve navigation flow and form handling.
- **Bug Fixes**
- Auto-switch to new tabs: detect a new tab after a click and dispatch
`SwitchTabEvent`; on failure, add a note to manually switch.
- Checkbox/radio reliability: capture pre-click checked state; if the
CDP click doesn’t toggle, fall back to `element.click()` and include the
final `checked` state in metadata.
<sup>Written for commit 4a65aea6a9.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
- agent.md: fix llm_timeout docs to match auto-detection logic (Groq 30s,
Gemini 75s, o3/Claude/DeepSeek 90s, default 75s)
- examples.md: guard pw.stop() with None check to prevent UnboundLocalError
- api-v2.md: show all S3 presigned form fields in upload example
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Make cross-origin iframe indexing reliable so elements inside them are
included consistently. Handles dynamic iframes and target-attachment
races to prevent missing content during DOM builds.
- **Bug Fixes**
- Fallback to matching iframes by sanitized `src` when `frameId` is
missing or not yet in `all_frames`.
- Use `frameTargetId` directly; fetch details via `get_target()` when
available and fall back to frame metadata if not.
- Remove race in target tracking by creating/updating `Target` inside
the same lock as `_target_sessions`.
- Skip detached targets in `get_all_frames()` by catching `ValueError`,
and wrap iframe DOM recursion in try/except to avoid failing the whole
tree.
<sup>Written for commit 03de83a069.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
- models.md: fix ChatVercel provider_options and env var (AI_GATEWAY_API_KEY)
- examples.md: add try/finally for browser cleanup in parallel and playwright examples
- agent.md: fix defaults to match source (max_actions_per_step=5, max_failures=5,
use_vision=True, llm_timeout=60, step_timeout=180)
- features.md: fix undefined session_id in workspace example
- monitoring.md: add missing await on get_usage_summary()
- api-v2.md: fix upload flow to use multipart POST with fields (S3-style)
- SKILL.md: use uv pip for cloud SDK install
- integrations.md: use distinct MCP server name for docs endpoint
New skill providing documentation reference for writing Python code against
the browser-use library and making Cloud REST API calls. Condensed from
CLOUD.md (2700 lines of OpenAPI YAML → 530 lines of tables) and AGENTS.md
(1021 lines → 762 lines with markup stripped and sections deduplicated).
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Widen retry backoff timing assertions in `tests/ci/test_llm_retries.py`
to reduce CI flakiness. Upper bounds: first 0.3s, second 0.5s; still
verify exponential growth.
<sup>Written for commit 954cf0f6f7.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Removed the code-use mode and `CodeAgent` to simplify the codebase and
drop heavy optional dependencies. This is a breaking change for projects
using `CodeAgent` or `browser_use.code_use.*`.
- **Migration**
- Replace `CodeAgent` with `Agent` and adapt to action-based flows.
- Remove imports from `browser_use.code_use.*` and `CodeAgentTools`; use
`Tools` from `browser_use.tools.service`.
- Drop usage of code-use helpers (`create_namespace`, `export_to_ipynb`,
`session_to_python_script`, `CodeCell`, `NotebookSession`, and the
code-use DOM serializer).
- Stop installing the `code` extra; if needed, add `numpy`, `pandas`,
`matplotlib`, and `tabulate` directly to your project.
<sup>Written for commit 43b5e4ce1d.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->