Runner creates a Screencaster before sessions are acquired, then wires its start/stop into DashboardServer.onStartStream / onStopStream after sessions exist (the handlers close over a sessionsByKey map). Clicking a player tile in the dashboard starts a CDP screencast on that session's page, forwards JPEG frames as WS "frame" messages. Closing the modal (or disconnecting the WS) stops all screencasts. Verified end-to-end: programmatically connected WS, sent start_stream, received 5 frames (13.7KB each), sent stop_stream, screencast_stopped log line fired, run completed cleanly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Golf Soak & UX Test Harness
Runs 16 authenticated browser sessions across 4 rooms to populate staging scoreboards and stress-test multiplayer stability.
Spec: docs/superpowers/specs/2026-04-10-multiplayer-soak-test-design.md
Bring-up: docs/soak-harness-bringup.md
Quick start
cd tests/soak
bun install
bun run seed # first run only
TEST_URL=http://localhost:8000 bun run smoke
(The scripts also work with npm run, pnpm run, etc. — bun is what's installed
on this dev machine.)
Full documentation arrives with Task 31.