# Compact round-2 replay

Run the real before app at commit 73fb49d0b3a61bff74aebc362fc6c17d6c0d39be and after app at 379bf92ec0d5c5c3d52dfafe4716b8e7700432e9 in separate checkouts. Install dependencies; start each with `T3CODE_DEV_SEED=0 vp run dev --home-dir <fresh-isolated-directory>` and track its process group. Save startup output as before-server.log / after-server.log in the recorder scratch root. The driver reads the pairing URL privately from those logs (or a side-pair-private.json generated by `node apps/server/src/bin.ts pair --base-dir <same-isolated-directory>`); never upload these inputs.

Install Playwright/Chromium or adjust the two explicit local executable/module paths in record-compact.cjs. Set its scratch root to the local archive extraction directory. It reads capture-driver-r1.js unchanged, uses the real Dark appearance control, opens settings/general, then runs precisely Capture.compact(). Invoke `node record-compact.cjs before` and `node record-compact.cjs after` independently. Each creates its own timestamped output directory and fresh context/browser. The browser closes in finally.

The recorder samples complete 1400×1800 PNG frames at approximately two per second. It does not accumulate partial screencast damage rectangles. Each sample timestamp is retained in frames.json. `python3 encode-inspect.py before` / `after` assemble actual durations and encode 10fps H.264 (holding samples, rather than inventing motion), attach chapter metadata, and extract every chapter/outcome. Check each extracted frame visually; finalize-checks.py records the completed inspection and uses the settled first-action F10 sample. It is a one-time finalization script on a freshly generated inspection list.

The clips establish synthetic key/code handling only. They are not OS layout switches or native browser Find evidence. All fixture data are synthetic; no live T3 data was copied. The Date clock is frozen; the monotonic clock runs for timestamps.

Every accepted decoded chapter and outcome PNG, including original boundary samples, is in the source archive with mapping and checksums. before/after-frame-checks.md list the actual MP4 seek times inspected. The cleanup transcript records the owned servers stopped and the before checkout removed. No source changes, commits, pushes or PR edits were made.

The archive excludes server logs, pairing secrets, databases and setup screenshots. finalize-artifacts.py packs an explicit allowlist, uploads with ghdrop -m, then replaces compact links/timestamps in the combined evidence index while asserting wide rows and wide details remain identical. The original wide clips are retained from round 1.

AI-assisted; verified with the tests and tools listed above.
