Problem
WP Codebox recipes can provision multiple fixture users and persisted user sessions, but browser execution is serial and each browser command owns a single Playwright context/page. This prevents deterministic testing of concurrent authenticated workflows such as overlapping edits and saves.
Downstream workloads currently have to invent application-specific orchestration, which loses reusable scheduling, replay, and artifact guarantees. Gutenberg PR WordPress/gutenberg#79020 is the immediate motivating case.
Proposed contract
Add a generic browser-scenario primitive that:
- declares named actors bound explicitly to recipe user sessions
- keeps an isolated browser context/page per actor
- executes a seeded, deterministic schedule
- supports named barriers for coordinated progress
- supports bounded request gates for delay, release, retry, and out-of-order response schedules
- records actor actions, barrier transitions, request timing/order, seed, and replay inputs
- emits per-actor screenshots, traces, console/network evidence, and final scenario state
- tears down all contexts and gates deterministically on success or failure
Acceptance criteria
- A recipe can run at least two authenticated actors against one WordPress runtime.
- A deterministic test proves both actors can pause at a barrier and resume in the declared order.
- A deterministic test proves one actor request can be held and released after another actor action.
- Failure and timeout paths identify the actor/barrier/gate and still persist replayable artifacts.
- Existing single-browser recipe behavior remains unchanged.
- The public schema, runtime types, validation, examples, and focused tests describe the contract without Gutenberg-specific concepts.
Downstream proof
Use the primitive to model concurrent note authors, stale saves, retries, and convergence for WordPress/gutenberg#79020.
Problem
WP Codebox recipes can provision multiple fixture users and persisted user sessions, but browser execution is serial and each browser command owns a single Playwright context/page. This prevents deterministic testing of concurrent authenticated workflows such as overlapping edits and saves.
Downstream workloads currently have to invent application-specific orchestration, which loses reusable scheduling, replay, and artifact guarantees. Gutenberg PR WordPress/gutenberg#79020 is the immediate motivating case.
Proposed contract
Add a generic browser-scenario primitive that:
Acceptance criteria
Downstream proof
Use the primitive to model concurrent note authors, stale saves, retries, and convergence for WordPress/gutenberg#79020.