Skip to content

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

Draft
Hona wants to merge 1 commit into
v2from
browser-experimental
Draft

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

Conversation

@Hona

@HonaHona commented Aug 25, 2026

Copy link
Copy Markdown
Member

Issue for this PR

Related #44431. Replaces #39270, #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; tunnel authorization and destination validation happen during the authenticated WebSocket upgrade. Chromium automation uses its native accessibility tree and CDP input primitives, while existing session hooks, explicit approvals, isolated Electron permissions, and one typed Desktop RPC keep ownership and security contained.

The feature was reduced from 6,329 to 3,321 added lines while preserving the public Node SDK, remote localhost, HTTPS/CONNECT, WebSocket traffic, native browser controls, and security policies. Redundant fake transport suites were replaced with one real cross-stack SDK integration test, which now runs in CI.

How did you verify your code works?

  • Complete repository-wide Turbo test pipeline: 22 successful tasks; complete repository-wide typecheck pipeline: 32 successful tasks.
  • SDK: 24 tests, including a real authenticated server/client/proxy/WebSocket tunnel integration covering HTTP, CONNECT, credential stripping, Session isolation, and reattachment.
  • App: 521 unit tests and 42 browser tests; Desktop: 81 tests; focused Client/Core browser ownership, cancellation, permission, stale-ref, and sandbox coverage passed.
  • Schema, Protocol, Core, Server, and Client declaration/package builds passed, including the previously failing Protocol declaration build.
  • Genuine packed Node client imports, packed SDK installation, Workerd bundling/boot, generated OpenAPI/client checks, production App/Desktop builds, Effect lint, and formatting 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

@Hona
Honaforce-pushed the browser-experimental branch from cea1825 to 6784006CompareAugust 25, 2026 03:00
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.

1 participant

@Hona