Skip to content

fix: update browser-use-sdk from 2.0.15 to 3.4.1#4605

Open
octo-patch wants to merge 1 commit intobrowser-use:mainfrom
octo-patch:fix/issue-4588-update-browser-use-sdk-3x
Open

fix: update browser-use-sdk from 2.0.15 to 3.4.1#4605
octo-patch wants to merge 1 commit intobrowser-use:mainfrom
octo-patch:fix/issue-4588-update-browser-use-sdk-3x

Conversation

@octo-patch
Copy link
Copy Markdown

@octo-patch octo-patch commented Apr 4, 2026

Fixes #4588

Problem

browser-use-sdk was pinned to ==2.0.15, but no 2.x patch versions exist after 2.0.15 — the SDK went directly from 2.0.15 to 3.0.3. This pin prevented users from installing browser-use alongside other packages that require newer SDK versions.

Solution

Updated the pin to browser-use-sdk==3.4.1 (latest) and fixed the breaking API changes introduced in SDK 3.x:

Change Old (2.x) New (3.x)
List skills method skills.list_skills() skills.list()
Execute skill method skills.execute_skill(skill_id=...) skills.execute(skill_id, ...)
SkillResponse.id type str UUID
SkillsGenerationStatus type Literal["finished", ...] Enum
Import paths browser_use_sdk.types.* browser_use_sdk (top-level)

The old browser_use_sdk.types.* import paths still work via backward-compat stubs in 3.x, but they are deprecated and scheduled for removal, so this PR also migrates to the recommended top-level imports.

Testing

  • Verified import compatibility by inspecting the 3.4.1 wheel
  • Confirmed SkillListResponse.items, SkillResponse.parameters, ExecuteSkillResponse.success/error/latency_ms fields are structurally identical
  • The types.* stubs in 3.4.1 re-export from generated.v2.models confirming backward compatibility at the import level

Summary by cubic

Upgrade browser-use-sdk to 3.4.1 and update our skills code to the 3.x APIs to unblock installs with newer SDK versions. Fixes #4588.

  • Refactors
    • Switched to top-level browser_use_sdk imports.
    • Updated calls: skills.list(...) (was list_skills) and skills.execute(skill_id, ...) (was execute_skill).
    • Coerce SkillResponse.id (UUID) to str for comparisons and serialization.
    • Use status.value == "finished" to handle the new Enum.

Written for commit 0bed616. Summary will update on new commits.

)

The strict pin on browser-use-sdk==2.0.15 prevented users from
installing the package alongside other packages requiring newer SDK
versions. No 2.x patch releases exist after 2.0.15 (the SDK went
directly to 3.x), so relaxing the pin means upgrading to 3.x.

SDK 3.x introduced breaking API changes that required code updates:
- Rename skills.list_skills() -> skills.list()
- Rename skills.execute_skill() -> skills.execute()
- SkillResponse.id changed from str to UUID (fixed with str() coercion)
- SkillsGenerationStatus changed from Literal to Enum (fixed .value access)
- Import paths updated from deprecated browser_use_sdk.types.* to
  top-level browser_use_sdk exports
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

@gitguardian
Copy link
Copy Markdown

gitguardian Bot commented Apr 21, 2026

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

Since your pull request originates from a forked repository, GitGuardian is not able to associate the secrets uncovered with secret incidents on your GitGuardian dashboard.
Skipping this check run and merging your pull request will create secret incidents on your GitGuardian dashboard.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
- - Generic High Entropy Secret 3f9520c examples/glazyr_benchmark.py View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: Is it necessary to lock "browser-use-sdk==2.0.15"

2 participants