Skip to content

feat(browser): add autonomous native previews - #666

Open
pascalandr wants to merge 3 commits into
DEV-v2from
feat/browser-automation
Open

feat(browser): add autonomous native previews#666
pascalandr wants to merge 3 commits into
DEV-v2from
feat/browser-automation

Conversation

@pascalandr

@pascalandr pascalandr commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add autonomous native browser previews for Electron and Windows Tauri
  • expose codenomad.browser through the authenticated automation bridge already provided by DEV-v2
  • isolate persistent browser profiles and fence previews by OpenCode session, local window ownership, navigation generation, and exact page-load expectations
  • harden popup, permission, download, URL, deadline, stale-ref, and multi-window open-claim handling

Scope

Developer Automation launch, CDP feedback, restart, lifecycle, and shared native transport now live in DEV-v2. This PR only adds browser previews and the browser-specific extension points; it does not restore a separate browser plugin, route, or V1 runtime.

Validation

  • server, UI, and Electron typechecks
  • server browser/bridge tests: 6/6
  • UI browser policy/adapter tests: 7/7
  • Electron native suite: 194/194
  • Tauri browser-controller tests: 5/5
  • full Tauri suite: 137 passed; one pre-existing registration timing assertion failed under the full parallel run and passed immediately in isolation
  • UI and Electron production builds
  • cargo check, scoped rustfmt, and git diff --check

Notes

Real packaged Windows webview integration and the Linux cross-target check were not rerun for the rewritten branch. The Linux toolchain still lacks x86_64-linux-gnu-gcc in this environment.

@pascalandr
pascalandr force-pushed the feat/browser-automation branch from 59b106f to 36e39fb Compare August 29, 2026 08:25
@pascalandr pascalandr changed the title feat(browser): add native previews and developer automation feat(browser): add autonomous native previews Aug 29, 2026
Expose session-scoped browser open, navigate, snapshot, click, type, and screenshot actions through the existing authenticated CodeNomad automation adapter. Reuse the shared native request transport and session ownership fencing from Developer Automation instead of restoring a separate plugin or route.

Implement isolated persistent browser previews in Electron and Windows Tauri with hardened popup, permission, download, navigation, deadline, and stale-reference handling. Keep preview registration and open claims scoped to the owning CodeNomad session across windows.

Add the session preview UI, native adapters, localized labels, browser-specific architecture documentation, and focused Electron, Tauri, server, and UI coverage. Developer Automation launch, CDP feedback, and lifecycle code remain in DEV-v2 and are not duplicated here.
Apply rustfmt to the new browser command and navigation wiring in main.rs. No behavioral changes.
Create an agent-requested preview before switching the active session so Tauri never registers the previous workspace preview under the new session. Ignore transient registrations that are still loading another URL.

Allow failed or closing claim owners to release browser-open ownership and redistribute the request to another local window in both Electron and Tauri. Prevent the failed owner from immediately reclaiming the same request.

Fence Electron click dispatch against navigation before every mouse event, matching Tauri. Add focused regressions for claim transfer, stale click refs, and stale Tauri page-load expectations.
@pascalandr
pascalandr force-pushed the feat/browser-automation branch from 36e39fb to 8b6a471 Compare August 29, 2026 08:35
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/33243527867

Artifacts expire in 7 days.
Artifacts:

  • pr-666-8b6a471e2c2ed27b8e282868ea2e1df9b53b9089-tauri-macos
  • pr-666-8b6a471e2c2ed27b8e282868ea2e1df9b53b9089-tauri-windows
  • pr-666-8b6a471e2c2ed27b8e282868ea2e1df9b53b9089-tauri-linux
  • pr-666-8b6a471e2c2ed27b8e282868ea2e1df9b53b9089-electron-macos
  • pr-666-8b6a471e2c2ed27b8e282868ea2e1df9b53b9089-tauri-macos-arm64
  • pr-666-8b6a471e2c2ed27b8e282868ea2e1df9b53b9089-electron-linux
  • pr-666-8b6a471e2c2ed27b8e282868ea2e1df9b53b9089-electron-windows

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.

1 participant