Skip to content

feat(co-browser): Create co-browser manager with shared window and tab locking #45

@coderooz

Description

@coderooz

Create the core co-browser manager with shared Playwright browser window, tab ownership, and multi-agent coordination.

Acceptance criteria:

  • Create src/domains/browser/co-browser.js with CoBrowserManager class
  • Shared Playwright BrowserContext per window (headless=false for user interaction)
  • Tab ownership model: each tab locked to one agent
  • Tab claiming/releasing with agent validation
  • Navigation proxy: agent navigates tab via Playwright, user sees live page
  • Screenshot capture for SSE viewport streaming
  • Window state query (all tabs, owners, URLs, instructions)
  • Emergency tab release on agent heartbeat failure
  • Max tabs per window: configurable (default: 10)

Class interface:

  • openWindow(agentId, windowName) → { windowId, tabId }
  • addTab(windowId, agentId) → { tabId }
  • claimTab(windowId, tabId, agentId) → success
  • releaseTab(windowId, tabId, agentId) → success
  • navigateTab(windowId, tabId, url) → { url, title }
  • getScreenshot(windowId, tabId) → base64 image
  • getState(windowId) → full state
  • closeWindow(windowId, agentId) → success

Milestone: v2.8.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions