Skip to content

feat(browser): add experimental desktop browser - #39270

Closed
Hona wants to merge 1 commit into
v2from
browser-server
Closed

feat(browser): add experimental desktop browser#39270
Hona wants to merge 1 commit into
v2from
browser-server

Conversation

@Hona

@HonaHona commented Jul 28, 2026

Copy link
Copy Markdown
Member

Issue for this PR

Related #44431. Consolidates #39277 and #39278.

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Adds an on-demand, opt-out Desktop browser and public Node host SDK. Browser control and authenticated remote TCP tunneling use /api/experimental/browser/control and /api/experimental/browser/tunnel. Existing session hooks control tool visibility; explicit browser approvals, isolated Electron permissions, typed Desktop RPC, and lazy Chromium attachment keep ownership and lifecycle contained.

How did you verify your code works?

  • Core: 2,262 tests passed; App: 523 unit and 43 browser tests passed.
  • Client: 88 tests passed excluding one existing unrelated Promise-client expectation; built Node package smoke passed.
  • Schema, Protocol, Core, Server, Client, App, Desktop, SDK, simulation, CLI, and TUI typechecks passed.
  • Real authenticated Node host connected to a local V2 server and tunneled HTTP to remote loopback; production App/Desktop builds, Workerd boot, and generated outputs passed.

Screenshots / recordings

Browser pane includes localized navigation controls, address input, loading/error states, and native rounded corners.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@HonaHona mentioned this pull request Jul 28, 2026
@Hona
Honaforce-pushed the browser-server branch 2 times, most recently from 78797fb to 6f8b62bCompareJuly 29, 2026 05:50
@HonaHona changed the title feat(server): expose browser transportfeat(core): add browser tools and transportJul 29, 2026
@Hona
Hona changed the base branch from browser-core to v2July 29, 2026 06:06
@ItsWendell

Copy link
Copy Markdown
Contributor

This looks close to the client-hosted tool support I need for a custom desktop client.

The ownership model is similar: OpenCode manages the tool definitions, permissions, and Session state, while the connected desktop client runs operations that depend on its local browser or native APIs.

Do you expect BrowserHost and its WebSocket protocol to stay browser-specific, or could this become a more general transport for capabilities hosted by connected clients?

I opened #44431 for the broader question. I mainly want to avoid building a separate bridge if this is already the intended V2 direction.

@HonaHona changed the title feat(core): add browser tools and transportfeat(browser): add experimental desktop browserAug 25, 2026
@Hona

Hona commented Aug 25, 2026

Copy link
Copy Markdown
MemberAuthor

Superseded by #44838, a fresh standalone pull request targeting v2 without stack metadata.

@HonaHona closed this Aug 25, 2026
Sign up for freeto 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.

2 participants

@Hona@ItsWendell