Commit Graph

7526 Commits

Author SHA1 Message Date
Cursor Agent fc614c4e54 feat: Improve agent failure reporting with bug export
Co-authored-by: mailmertunsal <mailmertunsal@gmail.com>
2025-11-01 21:18:37 +00:00
Magnus Müller 8ba3eead57 Update file write tool and log location (#3504)
This pull request contains changes generated by a Cursor Cloud Agent

<a
href="https://cursor.com/background-agent?bcId=bc-b8f47222-cf65-445a-ae6d-3d94f058b645"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/open-in-cursor-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/open-in-cursor-light.svg"><img alt="Open in
Cursor"
src="https://cursor.com/open-in-cursor.svg"></picture></a>&nbsp;<a
href="https://cursor.com/agents?id=bc-b8f47222-cf65-445a-ae6d-3d94f058b645"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/open-in-web-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/open-in-web-light.svg"><img alt="Open in Web"
src="https://cursor.com/open-in-web.svg"></picture></a>



<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Updated write_file to log the full file path after write/append
operations. This improves traceability and makes it easier to debug
where files are stored.

<sup>Written for commit 596ada0540.
Summary will update automatically on new commits.</sup>

<!-- End of auto-generated description by cubic. -->
2025-11-01 12:07:32 -07:00
Cursor Agent 596ada0540 Log full file path when writing to file
Co-authored-by: mamagnus00 <mamagnus00@gmail.com>
2025-11-01 18:25:33 +00:00
Mert Unsal 2c4cd25812 Updated faq section in the readme (#3502)
fixes #3463 

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Update README FAQ to reflect the new custom tools API. The example now
uses browser_use.Tools with @tools.action and passes tools=tools to
Agent, replacing the old Tool decorator and use_custom_tools parameter.

<sup>Written for commit ea1f614cd5.
Summary will update automatically on new commits.</sup>

<!-- End of auto-generated description by cubic. -->

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
generating a summary for commit
a8f70b2b3b. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-11-01 10:52:38 -07:00
Mert Unsal a8f70b2b3b Merge branch 'main' into fix/readme-custom-tools-faq 2025-11-01 10:52:23 -07:00
Mert Unsal 120cd838cd Updated openai logging (#3503)
fixes #3268 

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Improves OpenAI error handling with clearer messages and typed
rate-limit errors. Fixes #3268.

- **Bug Fixes**
- Raise ModelRateLimitError on rate limits for better retry handling and
logging.
- Simplify API error mapping by using SDK-provided message/status
instead of manual JSON parsing.

<sup>Written for commit 687f166a29.
Summary will update automatically on new commits.</sup>

<!-- End of auto-generated description by cubic. -->
2025-11-01 10:50:14 -07:00
Krishna Rathore 687f166a29 Updated openai logging 2025-11-01 22:33:35 +05:30
Krishna Rathore ea1f614cd5 Updated faq section in the readme 2025-11-01 21:59:05 +05:30
Aitor adbe59d028 fix: improved sandbox example removing bugged output_model_schema (#3495) 2025-11-01 03:54:24 +01:00
reformedot 8977a53696 fix: improved sandbox example removing bugged output_model_schema 2025-10-31 19:54:02 -07:00
Magnus Müller ed8c4a7e80 change example (#3494)
Auto-generated PR for: change example

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Updates the agentmail 2FA example to use ChatBrowserUse for the LLM
and adds an asyncio entrypoint.
> 
> - **Examples**:
>   - **`examples/integrations/agentmail/2fa.py`**:
> - Switch LLM from `models.azure_gpt_4_1_mini` to `ChatBrowserUse`;
update import accordingly.
> - Add asyncio entrypoint with `asyncio.run(main())`; import `asyncio`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
857182c042. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-10-31 19:49:51 -07:00
Magnus Müller c2d39adb82 Merge branch 'main' into change-example 2025-10-31 19:49:43 -07:00
Magnus Müller 857182c042 change example 2025-10-31 19:49:03 -07:00
Gregor Žunič 3c12ae7437 Remote Code Upload and Execution (#3490)
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Adds sandboxed remote code execution with SSE streaming and first-class
cloud browser parameters (profile, proxy country, timeout) to simplify
remote runs and cloud configuration. Also replaces legacy globals with a
client-based flow and updates docs, examples, and tests.

- **New Features**
- Remote execution: @sandbox decorator packages code and closures via
cloudpickle, streams logs/results via SSE, and supports callbacks
(browser created, instance ready, log, result, error).
- Cloud browser params: Pass cloud_profile_id, cloud_proxy_country_code,
and cloud_timeout directly to Browser/BrowserSession (auto-enables
use_cloud). Supports extra headers on create/stop.
- Typed event models for SSE, type-preserving result parsing
(Pydantic/dataclasses/enums), and a new AgentHistoryList.load_from_dict
helper.

- **Migration**
- Replace get_cloud_browser_cdp_url/stop_cloud_browser_session with
CloudBrowserClient().create_browser(CreateBrowserRequest(...)) and
stop_browser().
- Prefer cloud_* params over cloud_browser; cloud_browser remains as
alias for use_cloud.
- Set BROWSER_USE_API_KEY for remote/cloud usage; update imports to use
browser_use.browser.cloud.cloud and browser_use.browser.cloud.views.
  - New dependency: cloudpickle.

<sup>Written for commit 0159108e11.
Summary will update automatically on new commits.</sup>

<!-- End of auto-generated description by cubic. -->
0.9.5
2025-10-31 19:20:00 -07:00
Gregor Žunič 0159108e11 Merge branch 'main' into feature/remote-code 2025-10-31 19:16:57 -07:00
Gregor Žunič 2fd577efea docs and version decrease to 0.9.5 2025-10-31 19:15:43 -07:00
Magnus Müller dacc3926b4 bump 2025-10-31 19:03:38 -07:00
Gregor Žunič 508d72dbf2 0.10.0rc1 0.10.0rc1 2025-10-31 15:18:31 -07:00
Gregor Žunič a45c671668 Merge branch 'main' into feature/remote-code 2025-10-31 15:12:43 -07:00
Gregor Žunič 384ca0573f prepare for release 2025-10-31 15:11:45 -07:00
Gregor Žunič 5e923a4942 renamed everything to sandbox 2025-10-31 14:25:31 -07:00
Alexander Yue 8dbe7e9fd8 make images in readme default to light mode (#3492)
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Set README images to default to light mode by switching <img> fallbacks
to the light assets. Ensures correct rendering on PyPI, which forces
light mode and strips theme detection.

<sup>Written for commit a4f76e40c4.
Summary will update automatically on new commits.</sup>

<!-- End of auto-generated description by cubic. -->
2025-10-31 13:07:45 -07:00
Alezander9 a4f76e40c4 make images in readme default to light mode, since pypi forces light mode and strips the theme detection logic 2025-10-31 12:42:38 -07:00
Gregor Žunič 5e428e829b Merge branch 'main' into feature/remote-code 2025-10-31 12:19:39 -07:00
Gregor Žunič 02a173f691 added proxy, profile and timeout 2025-10-31 07:45:03 -07:00
Magnus Müller 55661ba26f 1.support unicode characters in filenames and improve path handling. 2. fixed path validation failures in Windows OS environments. (#3478)
1.support unicode characters in filenames and improve path handling. 
2.fixed path validation failures in Windows OS environments.



<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds Unicode filename support and fixes Windows path validation by
matching only the base file name, improving cross-platform path
handling.

- **Bug Fixes**
  - Expanded filename regex to include CJK characters.
- Use os.path.basename in validation to avoid rejecting full paths on
Windows.

<sup>Written for commit f46ee16. Summary will update automatically on
new commits.</sup>

<!-- End of auto-generated description by cubic. -->




<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Support CJK characters in filenames and validate only the base name to
avoid Windows path validation issues.
> 
> - **Filesystem**:
> - **Filename validation**: Expand regex to include CJK range
(`\u4e00-\u9fff`) and apply it to `os.path.basename(file_name)` to avoid
rejecting full paths, improving Windows compatibility.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f46ee167da. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-10-30 23:37:56 -07:00
Magnus Müller f46ee167da Merge branch 'main' into bugfix/0.9.4 2025-10-30 23:36:43 -07:00
Magnus Müller d2dde8d200 Add extra_body parameter support in openrouter (#3479)
Closes #3263

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds support for an extra_body parameter in ChatOpenRouter to pass
custom request fields to OpenRouter API calls. This adds flexibility for
provider-specific options and fulfills Linear #3263.

- **New Features**
- Added extra_body field to ChatOpenRouter and spread it into ainvoke
requests.
  - Default is None, so no breaking changes.

<sup>Written for commit 7e477ea. Summary will update automatically on
new commits.</sup>

<!-- End of auto-generated description by cubic. -->

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
generating a summary for commit
f54d0929b1. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-10-30 23:36:02 -07:00
Magnus Müller f54d0929b1 Merge branch 'main' into feature/3263-add-extra-body-support 2025-10-30 23:35:51 -07:00
Magnus Müller 2553a37cd0 Implement template system with template-library repo (#3487)
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Switch template generation to a GitHub-backed template-library, fetching
templates and manifests at runtime for instant updates. Refactors the
init command to create per-template projects, handle extra files
(including binaries), and show clear next steps.

- **New Features**
- Fetch template list and files from the template-library GitHub repo at
runtime.
- Manifest-driven generation: writes extra files, supports binaries, and
sets executables.
- Creates a per-template directory with main.py and displays next steps
(from manifest or defaults).
- Template selection via --list or interactive prompt with numeric
hotkeys.
- Graceful offline error with a clear message when GitHub is
unreachable.

- **Refactors**
  - Removed local CLI templates (default, advanced, tools).
- Replaced hardcoded choices with dynamic discovery from templates.json.
  - --template now accepts any manifest key (string), not a fixed set.
  - Centralized GitHub fetch helpers; removed fallback templates.

<sup>Written for commit 24ec8e6. Summary will update automatically on
new commits.</sup>

<!-- End of auto-generated description by cubic. -->
2025-10-30 23:32:31 -07:00
reformedot f52400b772 feat: added stream complete event 2025-10-30 22:51:37 -07:00
ShawnPana 24ec8e6696 address cubic 2025-10-30 20:05:32 -07:00
ShawnPana c5a31c5ed4 Fix type errors: add Any import, INIT_TEMPLATES export, and update return types 2025-10-30 19:53:27 -07:00
shawn pana 69a3331af1 Merge branch 'main' into clean-template-system 2025-10-30 19:40:52 -07:00
ShawnPana fd67e3b4dd Replace hardcoded template logic with manifest-driven system from template-library 2025-10-30 19:36:54 -07:00
ShawnPana 2431180fb5 Remove FALLBACK_TEMPLATES and make template system fully GitHub-dependent with graceful offline error handling 2025-10-30 19:27:03 -07:00
ShawnPana 944905554e Implement GitHub-based template system
- Remove local template files (advanced, default, tools)
- Fetch templates dynamically from template-library repo
- Add templates.json for dynamic template discovery
- Fetch both template list and content at runtime from GitHub
- Fall back to hardcoded FALLBACK_TEMPLATES for offline use
- Add binary file fetching support for PDFs and assets
- Enable instant template updates without code changes

Templates now managed in: https://github.com/browser-use/template-library

Benefits:
- Add new templates by editing template-library only
- Users get instant access without PyPI releases
- Cleaner separation of concerns
- No template files in main codebase
2025-10-30 19:15:51 -07:00
reformedot 84129c68bf fix: linting? 2025-10-30 18:03:48 -07:00
reformedot 1edac92118 Merge branch 'feature/remote-code' of github.com:browser-use/browser-use into feature/remote-code 2025-10-30 17:53:13 -07:00
reformedot b68f85a225 feat: improve error handling 2025-10-30 17:52:48 -07:00
Magnus Müller 9ef0992f45 gitignore (#3485)
Auto-generated PR for: gitignore

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
generating a summary for commit
5b67d4b8e1. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-10-30 15:50:48 -07:00
Magnus Müller 5b67d4b8e1 gitignore 2025-10-30 15:50:33 -07:00
Gregor Žunič b388886c8f extra headers for creation of browser 2025-10-30 15:03:30 -07:00
Gregor Žunič 3d12b6d5b2 extra headers 2025-10-30 14:49:06 -07:00
Gregor Žunič 75439f697d Better cloud params (#3484)
<!-- This is an auto-generated description by cubic. -->
## Summary by cubic
Adds first-class cloud browser parameters (profile, proxy country,
timeout) to Browser/BrowserSession and routes creation through
CloudBrowserClient. Updates docs and examples, and removes legacy global
helpers in favor of session-managed cleanup.

- **New Features**
- Pass cloud_profile_id, cloud_proxy_country_code, and cloud_timeout
directly to Browser/BrowserSession, or via cloud_browser_params.
  - Auto-enables use_cloud when any cloud param is provided.
- BrowserSession now creates the cloud session via CloudBrowserClient
and sets cdp_url transparently.
- Docs and examples updated with parameter limits (free: 15 min, paid:
240 min) and supported proxy countries.

- **Migration**
- Removed get_cloud_browser_cdp_url and stop_cloud_browser_session. Use
CloudBrowserClient().create_browser(CreateBrowserRequest(...)) or set
cloud_* params on Browser.
- cloud_browser still works as an alias for use_cloud; prefer the new
cloud_* params moving forward.

<sup>Written for commit 9c88c5a. Summary will update automatically on
new commits.</sup>

<!-- End of auto-generated description by cubic. -->
2025-10-30 13:19:02 -07:00
Gregor Žunič 9c88c5a828 better cloud params 2025-10-30 13:05:41 -07:00
Magnus Müller 1a25f5741f fix-scroll (#3481)
Auto-generated PR for branch: fix-scroll

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Refines scrollable element interactivity to avoid conflicting
descendants and adds robust datepicker format metadata (including
AngularJS), plus minor write_file docs tweak.
> 
> - **DOM Serialization (serializer.py)**:
> - Refines interactive indexing: only mark scrollable containers as
interactive when they have no interactive descendants
(`_has_interactive_descendants` + new logic in
`_assign_interactive_indices_and_mark_new_nodes`).
> - Enhances date/time input metadata: detects AngularJS
`uib-datepicker-popup` and adds `expected_format` and `format`; expands
jQuery/Bootstrap detection; preserves key attributes by protecting them
from deduplication.
> - **DOM Views (views.py)**:
> - Exposes new synthetic attributes in `DEFAULT_INCLUDE_ATTRIBUTES`:
`format`, `expected_format`.
> - **Tools (service.py)**:
> - Clarifies `write_file` action description with allowed
filename/extension formats.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
ea784626e6. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-10-30 12:04:04 -07:00
Magnus Müller ea784626e6 Merge branch 'fix-scroll' of https://github.com/browser-use/browser-use into fix-scroll 2025-10-30 11:56:07 -07:00
Magnus Müller 5a4ebf7fe4 Date fix 2025-10-30 11:56:04 -07:00
Magnus Müller bece4707d2 alphanumeric file names 2025-10-30 11:51:13 -07:00