[GH-ISSUE #63] Build a Playwright/CDP differential recorder #51

Closed
opened 2026-10-15 18:20:30 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @morluto on GitHub (Jul 12, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/63

Problem

Static bundle inspection cannot establish the complete interactive state machine of a browser or hosted renderer.

Outcome

Add an approval-gated capture_browser_scenario provider using Playwright and CDP.

Contract

Scenarios declare browser/connect mode, start URL, permitted origins, viewport/locale/timezone/theme, deterministic actions, timeouts, storage seeds, request replay, secret declarations, redaction, and capture limits.

Step-indexed output includes screenshots, DOM snapshots, accessibility trees, URL/history/storage changes, console/page errors, request/response metadata, WebSocket frames where supported, workers/frames, popup/download lifecycle, truncation, residual unknowns, and evidence IDs.

Safety

Require approval. Deny undeclared origins and external network by default. Redact credentials, authorization, cookies, tokens, and declared secrets. Bound bodies, images, events, downloads, and duration. Own and terminate only provider-launched processes.

Acceptance criteria

Declarative scenarios are deterministic and evidence-linked; cross-origin/network policy fails closed; partial runs cannot appear complete; CLI/MCP schemas match; capability metadata declares all effects.

Verification

Fixtures cover navigation, forms, popups, frames, workers, downloads, DOM/accessibility/screenshots, storage, replay, WebSockets, redaction, timeout, cancellation, crash, truncation, and cleanup.

Dependencies

Parent #39. Requires Evidence v2, typed capabilities, bundles, and process ownership.

Non-goals

Unrestricted crawling, access-control bypass, production credentials, visual comparison, or Electron IPC.

Originally created by @morluto on GitHub (Jul 12, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/63 ## Problem Static bundle inspection cannot establish the complete interactive state machine of a browser or hosted renderer. ## Outcome Add an approval-gated `capture_browser_scenario` provider using Playwright and CDP. ## Contract Scenarios declare browser/connect mode, start URL, permitted origins, viewport/locale/timezone/theme, deterministic actions, timeouts, storage seeds, request replay, secret declarations, redaction, and capture limits. Step-indexed output includes screenshots, DOM snapshots, accessibility trees, URL/history/storage changes, console/page errors, request/response metadata, WebSocket frames where supported, workers/frames, popup/download lifecycle, truncation, residual unknowns, and evidence IDs. ## Safety Require approval. Deny undeclared origins and external network by default. Redact credentials, authorization, cookies, tokens, and declared secrets. Bound bodies, images, events, downloads, and duration. Own and terminate only provider-launched processes. ## Acceptance criteria Declarative scenarios are deterministic and evidence-linked; cross-origin/network policy fails closed; partial runs cannot appear complete; CLI/MCP schemas match; capability metadata declares all effects. ## Verification Fixtures cover navigation, forms, popups, frames, workers, downloads, DOM/accessibility/screenshots, storage, replay, WebSockets, redaction, timeout, cancellation, crash, truncation, and cleanup. ## Dependencies Parent #39. Requires Evidence v2, typed capabilities, bundles, and process ownership. ## Non-goals Unrestricted crawling, access-control bypass, production credentials, visual comparison, or Electron IPC.
Author
Owner

@morluto commented on GitHub (Jul 20, 2026):

Split into focused child issues:

These replace the broad remaining scope in this issue. Closing this parent can happen once all children are closed.

<!-- gh-comment-id:5023445500 --> @morluto commented on GitHub (Jul 20, 2026): Split into focused child issues: - [ ] #373 - [ ] #374 These replace the broad remaining scope in this issue. Closing this parent can happen once all children are closed.
Author
Owner

@morluto commented on GitHub (Jul 25, 2026):

The focused children #373 and #374 are closed by merged PR #433, which delivers the capture scenario contract and Playwright/CDP driver.

<!-- gh-comment-id:5078381597 --> @morluto commented on GitHub (Jul 25, 2026): The focused children #373 and #374 are closed by merged PR #433, which delivers the capture scenario contract and Playwright/CDP driver.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#51
No description provided.