Release 0.13.9 with Browser Harness 0.1.12

This commit is contained in:
MagMueller
2026-09-03 18:26:02 -07:00
parent 5b50d1f511
commit 0e0983e30e
3 changed files with 35 additions and 13 deletions
+16 -5
View File
@@ -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
View File
@@ -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]
+16 -5
View File
@@ -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.