mirror of
https://github.com/browser-use/browser-use.git
synced 2026-10-02 04:04:36 +08:00
chore: release 0.13.9 with Browser Harness 0.1.12 (#5666)
## Summary
- bump `browser-use` to 0.13.9
- pin `browser-harness==0.1.12`
- sync the bundled Browser Use skill from the immutable Browser Harness
v0.1.12 tag
- allow the documented iTerm app name in codespell
This ships the persistent local approval flow from browser-harness
v0.1.12, including the `mac-approve` guidance.
## Validation
- `uv run pre-commit run --all-files --show-diff-on-failure`
- isolated full suite: 1,136 passed, 34 skipped
- `uv build --wheel`
- clean wheel install verified browser-use 0.13.9, browser-harness
0.1.12, and packaged `mac-approve` skill guidance
- live Anthropic provider test passed (`claude-sonnet-4-6`)
- end-to-end agent smoke passed: opened Hacker News and extracted the
top three stories with points and comment counts in two steps, zero
errors
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Ships `browser-use` 0.13.9 with `browser-harness` 0.1.12. This replaces
the standalone `mac-approve` run with a persistent approval flow: keep
the original browser command running and call `mac-approve` with the
matching `BU_NAME`.
- Syncs the bundled Browser Use skill from the Browser Harness v0.1.12
tag.
- Documents `BH_TAB_MARKER=0` to leave page titles unchanged.
- Adds guidance to avoid slow per-character typing for long text.
- Allows the documented `iterm` app name in codespell.
<sup>Written for commit 0e0983e30e.
Summary will update on new commits.</sup>
<a
href="https://cubic.dev/pr/browser-use/browser-use/pull/5666?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
This commit is contained in:
@@ -54,6 +54,8 @@ PY
|
||||
changing Chrome's visible tab. Screenshots and normal CDP input work in the
|
||||
background; call `activate_tab(target)` only when the user explicitly asks
|
||||
or a page demonstrably pauses rendering while hidden.
|
||||
- Set `BH_TAB_MARKER=0` before starting the daemon to leave page titles unchanged.
|
||||
The horse marker remains enabled by default.
|
||||
- A timed-out `scroll(...)` on an attached background tab is evidence that the
|
||||
page needs to be visible. Call `activate_tab(current_tab())`, retry the same
|
||||
scroll once, then re-read the scroll position. This visibly switches tabs,
|
||||
@@ -77,14 +79,22 @@ If Chrome is running but remote debugging is not enabled, the harness opens:
|
||||
chrome://inspect/#remote-debugging
|
||||
```
|
||||
|
||||
On macOS, when Chrome asks for remote-debugging permission, run:
|
||||
On macOS, when local Chrome asks for remote-debugging permission, keep the
|
||||
original browser command running and call `mac-approve` in another shell/tool
|
||||
call. Preserve the exact daemon name: if the waiting command used
|
||||
`BU_NAME=r7k2`, run:
|
||||
|
||||
```text
|
||||
browser-use mac-approve
|
||||
BU_NAME=r7k2 browser-use mac-approve
|
||||
```
|
||||
|
||||
Continue browser work when it returns `ready`; otherwise follow its printed
|
||||
instruction.
|
||||
For the default daemon, omit the `BU_NAME` prefix. The original command resumes
|
||||
when the helper returns `ready`; do not rerun it. If the helper reports
|
||||
`accessibility-required`, ask the user once to grant the app launching
|
||||
browser-use (for example Terminal, iTerm, or Codex) access in System
|
||||
Settings > Privacy & Security > Accessibility, then call `mac-approve` once
|
||||
again. This is only for local Chrome; do not call it for `BU_CDP_URL`,
|
||||
`BU_CDP_WS`, or Browser Use Cloud.
|
||||
|
||||
## Remote Browsers
|
||||
|
||||
@@ -136,6 +146,7 @@ Cloud profile cookie sync reference: https://github.com/browser-use/browser-harn
|
||||
- After navigation, call `wait_for_load()`.
|
||||
- If the current tab is stale or internal, call `ensure_real_tab()`.
|
||||
- Use `js(...)` for DOM inspection or extraction when coordinates are the wrong tool.
|
||||
- When entering unusually long text, avoid slow per-character typing: find a faster page-appropriate input method, then verify the page kept the exact value.
|
||||
- Login walls: stop and ask. Exception: use available SSO automatically when Chrome is already signed in; still stop for passwords, MFA, consent, or ambiguous account choice.
|
||||
- Raw CDP is available with `cdp("Domain.method", ...)`.
|
||||
|
||||
@@ -207,7 +218,7 @@ If you get stuck on a browser mechanic, check https://github.com/browser-use/bro
|
||||
## Gotchas
|
||||
|
||||
- `chrome://inspect/#remote-debugging` must be enabled for local Chrome control.
|
||||
- On macOS, if Chrome shows an "Allow remote debugging?" popup, run `browser-use mac-approve`. Do not poll in a loop — the daemon holds one connection.
|
||||
- On macOS, if local Chrome shows an "Allow remote debugging?" popup, call `mac-approve` once with the same `BU_NAME` while the original browser command waits. Do not poll or rerun the browser command; remote and cloud browsers do not use this helper.
|
||||
- Omnibox popups are not real work tabs.
|
||||
- CDP target order is not Chrome's visible tab-strip order.
|
||||
- `BU_CDP_URL` is an HTTP DevTools endpoint; the daemon resolves it to WebSocket.
|
||||
|
||||
+3
-3
@@ -2,7 +2,7 @@
|
||||
name = "browser-use"
|
||||
description = "Make websites accessible for AI agents"
|
||||
authors = [{ name = "Gregor Zunic" }]
|
||||
version = "0.13.8"
|
||||
version = "0.13.9"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.11,<4.0"
|
||||
classifiers = [
|
||||
@@ -46,7 +46,7 @@ dependencies = [
|
||||
"markdownify==1.2.2",
|
||||
"python-docx==1.2.0",
|
||||
"browser-use-sdk==3.4.2",
|
||||
"browser-harness==0.1.10",
|
||||
"browser-harness==0.1.12",
|
||||
]
|
||||
# google-api-core: only used for Google LLM APIs
|
||||
# pyperclip: only used for examples that use copy/paste
|
||||
@@ -113,7 +113,7 @@ build-backend = "hatchling.build"
|
||||
|
||||
|
||||
[tool.codespell]
|
||||
ignore-words-list = "bu,wit,dont,cant,wont,re-use,re-used,re-using,re-usable,thats,doesnt,doubleclick,finaly,finalY"
|
||||
ignore-words-list = "bu,wit,dont,cant,wont,re-use,re-used,re-using,re-usable,thats,doesnt,doubleclick,finaly,finalY,iterm"
|
||||
skip = "*.json"
|
||||
|
||||
[tool.ruff]
|
||||
|
||||
@@ -54,6 +54,8 @@ PY
|
||||
changing Chrome's visible tab. Screenshots and normal CDP input work in the
|
||||
background; call `activate_tab(target)` only when the user explicitly asks
|
||||
or a page demonstrably pauses rendering while hidden.
|
||||
- Set `BH_TAB_MARKER=0` before starting the daemon to leave page titles unchanged.
|
||||
The horse marker remains enabled by default.
|
||||
- A timed-out `scroll(...)` on an attached background tab is evidence that the
|
||||
page needs to be visible. Call `activate_tab(current_tab())`, retry the same
|
||||
scroll once, then re-read the scroll position. This visibly switches tabs,
|
||||
@@ -77,14 +79,22 @@ If Chrome is running but remote debugging is not enabled, the harness opens:
|
||||
chrome://inspect/#remote-debugging
|
||||
```
|
||||
|
||||
On macOS, when Chrome asks for remote-debugging permission, run:
|
||||
On macOS, when local Chrome asks for remote-debugging permission, keep the
|
||||
original browser command running and call `mac-approve` in another shell/tool
|
||||
call. Preserve the exact daemon name: if the waiting command used
|
||||
`BU_NAME=r7k2`, run:
|
||||
|
||||
```text
|
||||
browser-use mac-approve
|
||||
BU_NAME=r7k2 browser-use mac-approve
|
||||
```
|
||||
|
||||
Continue browser work when it returns `ready`; otherwise follow its printed
|
||||
instruction.
|
||||
For the default daemon, omit the `BU_NAME` prefix. The original command resumes
|
||||
when the helper returns `ready`; do not rerun it. If the helper reports
|
||||
`accessibility-required`, ask the user once to grant the app launching
|
||||
browser-use (for example Terminal, iTerm, or Codex) access in System
|
||||
Settings > Privacy & Security > Accessibility, then call `mac-approve` once
|
||||
again. This is only for local Chrome; do not call it for `BU_CDP_URL`,
|
||||
`BU_CDP_WS`, or Browser Use Cloud.
|
||||
|
||||
## Remote Browsers
|
||||
|
||||
@@ -136,6 +146,7 @@ Cloud profile cookie sync reference: https://github.com/browser-use/browser-harn
|
||||
- After navigation, call `wait_for_load()`.
|
||||
- If the current tab is stale or internal, call `ensure_real_tab()`.
|
||||
- Use `js(...)` for DOM inspection or extraction when coordinates are the wrong tool.
|
||||
- When entering unusually long text, avoid slow per-character typing: find a faster page-appropriate input method, then verify the page kept the exact value.
|
||||
- Login walls: stop and ask. Exception: use available SSO automatically when Chrome is already signed in; still stop for passwords, MFA, consent, or ambiguous account choice.
|
||||
- Raw CDP is available with `cdp("Domain.method", ...)`.
|
||||
|
||||
@@ -207,7 +218,7 @@ If you get stuck on a browser mechanic, check https://github.com/browser-use/bro
|
||||
## Gotchas
|
||||
|
||||
- `chrome://inspect/#remote-debugging` must be enabled for local Chrome control.
|
||||
- On macOS, if Chrome shows an "Allow remote debugging?" popup, run `browser-use mac-approve`. Do not poll in a loop — the daemon holds one connection.
|
||||
- On macOS, if local Chrome shows an "Allow remote debugging?" popup, call `mac-approve` once with the same `BU_NAME` while the original browser command waits. Do not poll or rerun the browser command; remote and cloud browsers do not use this helper.
|
||||
- Omnibox popups are not real work tabs.
|
||||
- CDP target order is not Chrome's visible tab-strip order.
|
||||
- `BU_CDP_URL` is an HTTP DevTools endpoint; the daemon resolves it to WebSocket.
|
||||
|
||||
Reference in New Issue
Block a user