mirror of
https://github.com/NeuralNomadsAI/CodeNomad.git
synced 2026-11-13 17:42:57 +00:00
## Scope Native browser previews, agent browser automation parity, and preview capabilities across **Electron, Tauri Windows, Tauri macOS and Tauri Linux**. - Shared native embedding, geometry, overlay masking, session-owned history and profile-scoped preview storage, isolated from the trusted application renderer. - Public `codenomad.browser`: open, navigate, snapshot, click, type, select, press, scroll, hover, drag, wait and screenshot through the authenticated backend and fenced native-parent channel. - Six native viewport presets, WebKit HTTP/JavaScript mobile identity, reset/reload and per-registration isolation. Native WebKit density/input differences remain explicit. - OAuth pop-ups with opener/postMessage and shared preview storage; downloads with sanitized unique names; native dialogs and owner/opener/renderer lifetime cleanup. - Camera, microphone, location and notifications remain denied. Other classified permissions retain native consent/selection and fail-closed attribution. Guests receive no application privileges, app IPC, page Node access or general evaluation bridge. - Current-state developer documentation and user help in ten languages. **Tauri macOS requires macOS 14 or newer; Electron keeps its own platform baseline.** ## Host matrix | Host | Native preview/history | Agent automation | Mobile profiles | Pop-ups/downloads/dialogs | | --- | --- | --- | --- | --- | | Electron | Chromium | Supported | Chromium | Supported | | Tauri Windows | WebView2 | Supported | Chromium | Supported | | Tauri macOS 14+ | WKWebView | Supported | Native WebKit | Supported | | Tauri Linux | WebKitGTK | Supported | Native WebKit | Supported | ## Qualification - **Ubuntu 24.04 KDE VM:** real application built from the merged sources, real backend and parent channel, private OpenCode daemon and deterministic provider producing actual agent tool calls. Full browser action sequence, OAuth opener messaging, downloaded-file contents, native dialog acceptance and PNG passed under X11/Xwayland. Additional native Wayland qualification uses an owned private KWin compositor; native dialog operator coverage is recorded separately. - **macOS 15.8 Intel VM:** same real-application/agent-tool path, all actions and capability smoke passed with the built UI, private profile/configuration and private OpenCode daemon. The app-window nested-scroll check also qualifies the Cocoa wheel-coordinate correction. - **Windows:** Tauri release executable under its own profile/configuration; all actions, OAuth, completed download, native dialog and PNG passed through actual agent tool calls. The user's main CodeNomad and shared OpenCode service remain untouched. - Native CI qualifies Linux, macOS Intel, macOS ARM64 and Windows. Authorized draft qualification uses no signing secrets. - A **real Mac trial remains a release qualification step**. Graphical macOS ARM64 and physical hardware capabilities retain their own qualification scope; the capability matrix describes supported contracts rather than exhaustive peripheral testing. ## Documented limits - macOS first standalone hover can omit `pointerenter`; ⌘A selects through the native responder while consuming the main A keydown. - WebKit captures script-created closed shadow roots; declarative closed shadow roots remain opaque. - WebKitGTK preserves CVE-2025-13947 dropped-file protection; use the page's native file input. No dropped URI text is converted into host file access. - GTK async clipboard reads lack requesting-frame attribution and are refused; native Ctrl+V and clipboard writing remain available. - WebKit keeps native screen/platform/pointer/hover/touch metadata. WKWebView uses DPR 2.75 when its runtime-checked native selector exists; GTK DPR follows monitor scale × fitted zoom. CSS dimensions remain stable across app zoom/DPI. No JavaScript getter shims. - Cross-origin frame contents retain the documented opaque automation boundary. Page input timeouts have unknown outcomes and are never replayed automatically. ## Integration - Merge ` |
||
|---|---|---|
| .. | ||
| browser-prompt.cjs | ||
| index.cjs | ||
| index.test.ts | ||