Uh oh!
There was an error while loading. Please reload this page.
Local control for user_device environments - #161
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
14ca56a to
bf57eb3CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…session after a bridge crash Co-authored-by: Cursor <cursoragent@cursor.com>
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
… kind Co-authored-by: Cursor <cursoragent@cursor.com>
…c tokens off a running loop Co-authored-by: Cursor <cursoragent@cursor.com>
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Cursor <cursoragent@cursor.com>
Uh oh!
There was an error while loading. Please reload this page.
…on still cancels Co-authored-by: Cursor <cursoragent@cursor.com>
Uh oh!
There was an error while loading. Please reload this page.
… loop Co-authored-by: Cursor <cursoragent@cursor.com>
…ent loop Co-authored-by: Cursor <cursoragent@cursor.com>
…gister atexit cleanup once Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…wrappers Co-authored-by: Cursor <cursoragent@cursor.com>
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
… union tag Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5dd5a3c. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Cursor <cursoragent@cursor.com>

Note
Medium Risk
Breaking environment client APIs and new on-machine command execution (browser/desktop) increase integration and operational risk; session cancellation on bridge loss can surprise callers.
Overview
Adds local execution for
user_deviceenvironments and expands the environment model beyond cloud-only browsers.The OpenAPI/SDK now treat environments as a
web|desktopdiscriminated union. Browsers gainhost(cloud/user_device), optionalsession_idto attach to an existing runner, andpersist_browser_profile; vault/profile bindings are documented as cloud-only. Create/update environment calls take typed request bodies (CreateEnvironmentRequest_*/UpdateEnvironmentRequestBody_*) instead of flatBrowserkwargs—a breaking SDK shape change.New
hai_agents_localpackage polls the platform command channel and dispatches to hai-drivers viaSeleniumBrowserBridge(Chrome remote debugging) andPyautoguiDesktopBridge.Client/AsyncClient.sessionsuseLocalSessionsClient, which can auto-start bridges for inline agents (stampingsession_idinto unclaimeduser_deviceenvs), cancel the session if a bridge dies, and respectHAI_AUTO_BRIDGE. The CLI addshai local browser|desktopfor manual bridging.Release 1.0.6 ships optional
[browser]/[desktop]extras onhai-drivers, bundleshai_agents_localin the wheel, and updates discriminator default tests for the new environment kinds.Reviewed by Cursor Bugbot for commit c854c5e. Bugbot is set up for automated code reviews on this repo. Configure here.