Skip to content

portal: add a permissioned browser node for agent-assisted UI testing #35

Description

@guicybercode

Phase

Post-MVP. Do not begin until the task model, event stream, canvas, and security boundaries are stable.

Context

A browser node connected to a task agent can close the loop for frontend implementation and verification, especially against localhost applications.

Goal

Add a Portal node with explicit user-approved browser automation capabilities.

Scope

  • Embedded browser navigation with an origin allowlist.
  • Typed actions for navigate, click, type, scroll, screenshot, inspect DOM, and read console messages.
  • Connect a Portal to specific task agents through capability grants.
  • Capture screenshots and findings as task artifacts.
  • Add timeouts, cancellation, action limits, and visible automation state.
  • Keep cookies, storage, and credentials isolated from the user's normal browser profile.

Acceptance criteria

  • Automation is disabled until the user grants a task-scoped origin.
  • Navigation outside approved origins pauses and requests confirmation.
  • Arbitrary JavaScript execution is disabled by default and requires a separate explicit capability.
  • Password fields, cookies, tokens, and browser storage never enter logs or diagnostics.
  • Every agent action is visible, cancellable, and recorded with sanitized metadata.
  • Closing the node cancels automation without stopping unrelated agent sessions.
  • Deterministic tests cover localhost navigation, denied origins, timeout, console errors, and screenshots.
  • Linux and macOS WebView differences are documented and tested.

Out of scope

Mobile-device control, remote browsers, CAPTCHA bypass, and production credential automation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions