<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Added the CDP URL to Agent Telemetry events so each event now includes
the browser session's CDP endpoint when available.
<!-- End of auto-generated description by cubic. -->
Auto-generated PR for: dont refresh page if index is not there
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Stopped refreshing the page when an element index is missing and now
raise an exception instead. This prevents unnecessary state updates and
gives a clear error if the index does not exist.
<!-- End of auto-generated description by cubic. -->
Update `Page` type imports in documentation and examples to resolve type
conflicts.
The `browser_use` controller injects a union type for `Page` (supporting
both Playwright and Patchright pages for normal and stealth modes).
Previous examples imported `Page` directly from `playwright.async_api`,
leading to `ValueError` due to type mismatch. This PR updates imports to
`browser_use.browser.types.Page` for correct type resolution.
---
[Slack
Thread](https://browser-use.slack.com/archives/D092QUQDC56/p1752831634841859?thread_ts=1752831634.841859&cid=D092QUQDC56)
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Updated `Page` and `ElementHandle` imports in docs and examples to use
`browser_use.browser.types` for correct type resolution and to prevent
type conflicts.
<!-- End of auto-generated description by cubic. -->
Lock markdown-pdf dependency to version 1.5 to resolve AGPL-3.0 license
conflict.
Versions of `markdown-pdf` from 1.6 onwards are licensed under AGPL-3.0,
which is incompatible with the project's MIT license. Pinning the
dependency to version 1.5 avoids this conflict.
---
[Slack
Thread](https://browser-use.slack.com/archives/D092QUQDC56/p1752830754000909?thread_ts=1752830754.000909&cid=D092QUQDC56)
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Pinned the markdown-pdf dependency to version 1.5 to avoid AGPL-3.0
license conflicts and ensure compatibility with the project's MIT
license.
<!-- End of auto-generated description by cubic. -->
Fix Issue https://github.com/browser-use/browser-use/issues/2467 where
the `ChatOpenAI` class always sends temperature, which is unsupported in
some models like `o3` and `o4-mini`.
Lint and test completed successfully.
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Fixed an issue where ChatOpenAI always sent the temperature parameter,
causing errors with models like o3 and o4-mini that do not support it.
- **Bug Fixes**
- Only include the temperature parameter if it is set, ensuring
compatibility with all supported models.
<!-- End of auto-generated description by cubic. -->
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Added support for tool calling with Groq models, allowing structured
output using either tool calling or JSON schema based on the model.
- **New Features**
- Supports tool calling for models like moonshotai/kimi-k2-instruct.
- Chooses between tool calling and JSON schema automatically for
structured outputs.
<!-- End of auto-generated description by cubic. -->
- Call _configure_mcp_server_logging() at module level before any browser_use imports
- This ensures early log lines during import time are captured and redirected to stderr
- Remove redundant call from BrowserUseServer.__init__() since logging is already configured
Co-authored-by: Nick Sweeting <pirate@users.noreply.github.com>
This fixes the issue where importing MCPClient would disable logging globally.
- Move logging configuration from module-level imports to BrowserUseServer.__init__()
- Add lazy import in __init__.py to avoid importing server module when only client is needed
- Create _configure_mcp_server_logging() function that only runs when server is actually used
- Environment variables now only set when BrowserUseServer is instantiated
Fixes#2449
Co-authored-by: Nick Sweeting <pirate@users.noreply.github.com>
Changed the behavior of the screenshot method to return 4px x 4px instead of
a 1x1 white PNG for empty pages. This adjustment accommodates the groq
LLaMa models, which does not accept 1px x 1px images.
Changed the behavior of the screenshot method to return None instead of a 1x1 white PNG for empty pages. This adjustment accommodates the groq LLaMa models, which does not accept 1px x 1px images.
The install instruction for the `browser-use[cli]` addon was
missing quotes, which can cause issues in some shells.
Updated to `pip install "browser-use[cli]"` to ensure correct
behavior across environments.
Auto-generated PR for: lmnr ignore input
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Updated the navigate method to ignore input and output when using the
observe_debug decorator.
<!-- End of auto-generated description by cubic. -->