## Summary
- add a README FAQ entry for the `browser-use/bu-30b-a3b-preview` model
- clarify that the normal `Agent(...)` setup still sends the default
Browser Use system prompt
- explain that `extend_system_message` / `override_system_message` are
only needed for intentional prompt customization
Closes#4225
## Validation
- `git diff --check`
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Clarifies the README FAQ for the open‑source preview model
`browser-use/bu-30b-a3b-preview` to address #4225.
Confirms that `ChatBrowserUse(model='browser-use/bu-30b-a3b-preview')`
with a standard `Agent(...)` still uses the default Browser Use system
prompt; only use `extend_system_message` or `override_system_message`
when customizing, setup is unchanged except `model=`, and hosted `bu-*`
models remain recommended for speed/accuracy.
<sup>Written for commit ac8671a041.
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 `read_long_content` action and its model to simplify the API
and avoid overlap. Updated the system prompt to use `search_page` for
text, `find_elements` for structure/attributes, and mark `find_elements`
as safe to chain.
- **Refactors**
- Deleted `read_long_content` action and `ReadContentAction` model.
- Updated truncation note in file reads to reference `extract` with
`start_from_char`.
- Tweaked `system_prompt.md`: prefer `search_page` for text; use
`find_elements` for structure/attributes; add `find_elements` to “Safe
to chain”.
- **Migration**
- Replace `read_long_content` with `extract`, setting `start_from_char`
to continue reading.
- For short content, use `read_file` or page extraction.
<sup>Written for commit a4cd7428f1.
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
Prepare a patch release: bump `browser-use` to 0.12.2 and upgrade
`google-genai` from 1.60.0 to 1.65.0.
<sup>Written for commit 503f7ccbfe.
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
Adds the current UTC date/time to the judge prompt so evaluations treat
recent dates as real and avoid false flags.
- **New Features**
- Compute `current_date` in UTC and inject into the prompt as "current
date/time is {current_date}".
- Replace prior date guidance with explicit timestamp to clarify that
recent content is valid.
<sup>Written for commit 3546b3777d.
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
Prevents false success by adding a blocking‑error check and tightens
data grounding to verbatim copy across all browser agent prompts. Still
forbids fabricated data; derived values are allowed with
screenshot-based verification. Also reverts `google-genai` to `1.60.0`
for stability.
- **Bug Fixes**
- Blocking error policy: payment declined, login without creds,
email/verification wall, required paywall, access denied → set
`success=false`. Temporary obstacles (CAPTCHA, popups) don’t count.
- Data grounding: every URL/price/name/value must be observed verbatim
in tool outputs, `browser_state`, or screenshot — copy exactly; don’t
paraphrase or normalize URLs. Derived values (counts/totals) from
observed data are allowed. Never construct; say not found.
- Prompt cleanup: removed hard‑constraint enforcement, explicit scroll
exceptions/“pages below” rules, and extract dedup guidance
(`already_collected`/results file). Applied across all prompt variants.
- **Dependencies**
- Reverted `google-genai` from `1.65.0` to `1.60.0`.
<sup>Written for commit b43c7ddc0c.
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
Improves the agent’s scrolling behavior by updating system prompts and
page info hints so it scrolls when users ask and when more content is
below.
- **Bug Fixes**
- Always use the scroll action when the user explicitly requests it;
when collecting items on a single-page list/feed, check page_info for
pages below and keep scrolling until the bottom.
- Clarified browser_state page info to “X pages above, Y pages below”
and added a hint (“scroll down to reveal more content”) when more
content is available.
<sup>Written for commit a0bdc1275e.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
## Summary
- `get_llm()` is a synchronous function but was called with `await` in
`_handle_local_task()`
- When no API key is configured, `get_llm()` returns `None`, and `await
None` raises `TypeError` before the helpful error message can be shown
- Removed the incorrect `await` keyword so the `if llm is None` check
works as intended
Fixes#4254
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Removed the incorrect await on synchronous `get_llm()` in
`_handle_local_task()`, preventing a `TypeError` when it returns `None`
and showing the intended missing-API-key message instead. Fixes#4254.
<sup>Written for commit 83ad411128.
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
Add strict data grounding rules across all agent prompts to block
fabricated data and reduce hallucinations. Prompts now only report
values seen in tool outputs or browser state, and must say “not found”
when data isn’t extracted.
- **Bug Fixes**
- Added DATA GROUNDING to core, Anthropic/Flash, and no-thinking
prompts, plus output blocks; forbids fabricated URLs, prices, values
(including “representative” ones).
- Replaced pre-done verification with a grounding check: every
URL/price/name/value must appear verbatim in tool outputs or
browser_state; never construct URLs; if missing, say “not found”.
- Added a critical reminder across prompts: never fabricate URLs, image
links, prices, or any data; prefer partial results with `success=false`
when uncertain.
- Inserted a grounding note into all `system_prompt_browser_use*` and
`system_prompt_flash*` output sections.
<sup>Written for commit 347904198c.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
## Summary
Updated documentation to remove references to free credits and
promotional offers, simplifying the API key setup instructions across
multiple documentation files.
## Key Changes
- Removed "$10 free credits" mention from the ChatBrowserUse
recommendation in AGENTS.md
- Simplified the API key acquisition language from "Don't have one? We
give you **$10** to try it out" to "Get your API key"
- Updated the .env file comment from "Get 10$ of free credits" to "Get
your API key"
- Removed the free credits reference from the README.md quick start
section
## Details
These changes streamline the documentation by removing time-sensitive
promotional information, making the setup instructions more evergreen
and focused on the core functionality rather than temporary offers. The
links to the API key generation page remain unchanged.
https://claude.ai/code/session_01CTCYfXrPi3SxEZeBy9DevS
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Removed all $10 signup credit mentions from `AGENTS.md` and `README.md`
and simplified API key setup wording. Updated `ChatBrowserUse` callouts
and `.env` comments to link to the API key page without promotions.
<sup>Written for commit eb17dac289.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
…lected parameter
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Prevents duplicate items when extracting across multiple pages by adding
an optional `already_collected` parameter to `extract()` and updating
prompts to use it. This keeps paginated results clean and avoids
repeated work.
- **Bug Fixes**
- Added optional `already_collected` to `ExtractAction` and plumbed it
through `service.extract()`; the extractor skips items whose
name/title/URL match provided identifiers.
- Updated system prompts to save item identifiers after each page and
pass them via `already_collected`; dedupe before completion.
- Backwards compatible: defaults to an empty list; existing calls work
unchanged.
<sup>Written for commit ce25884751.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
## Problem
After a successful navigate() call, the agent had no way to detect that
the page actually loaded empty content. The navigation event would
complete without error, the agent would see an empty DOM, and then fail
or give up with no retry or meaningful error.
This was happening in ~12k+ cases across multiple patterns:
- Pages that use JavaScript rendering that silently fails
- Sites that serve blank pages as anti-bot responses
- Tunnel/proxy connection errors (ERR_TUNNEL_CONNECTION_FAILED) landing
on error pages with no DOM
## Fix
Changes are in browser_use/tools/service.py, navigate() action:
**1. Post-navigation DOM health check**
After navigation completes for http/https URLs, calls
get_browser_state_summary() to inspect dom_state._root. If None (empty
DOM), waits 3 seconds and rechecks once. If still empty after the wait,
returns a descriptive ActionResult(error=...) so the agent can reason
about it and try a different approach, instead of silently proceeding
with an empty page.
**2. ERR_TUNNEL_CONNECTION_FAILED added to network error patterns**
Made explicit alongside the existing net:: catch for correctness and
clarity.
## Tickets Fixed
- Fixes ENG-3469: Agent fails when page loads empty DOM or blank content
- Fixes ENG-2920: Page has empty DOM after navigation, agent does not
wait or retry before failing
- Fixes ENG-3404: Websites render with empty DOM preventing all content
interaction
- Fixes ENG-3311: Website fails to load (empty DOM) preventing contact
form and task execution
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Added hard-constraint enforcement to all browser-use system prompts so
the agent avoids actions that violate explicit "do
NOT/never/avoid/skip/only X" instructions. This improves safety and task
compliance across modes.
- **New Features**
- Added a <constraint_enforcement> block to
`system_prompt_browser_use*.md` and `system_prompt_flash*.md` that
checks hard constraints before each action.
- Made hard-constraint checking the first item in Critical Reminders
across standard and no-thinking prompts, keeping existing guidance
intact.
<sup>Written for commit 081e4ee94f.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->