# Clone deadline runtime proof

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

These are real T3 server MCP and WebSocket responses, not unit tests. The PNGs and MP4s render the timestamped runtime transcript at its original timing, using the same fixed viewport and theme. Opening requests remain visible. No browser or provider turn was used: this isolates the actual server transport handlers from model behavior.

The fixture returns a cached, byte-identical Git smart-HTTP upload-pack response over 145 seconds. Each side starts with its own fresh server database and new destinations. Three concurrent requests use the same remote: MCP t3_project_clone, WebSocket sourceControl.cloneRepository, and projectClone.start (the tracked Add project / Git URL control). The Git commit and payload presence are checked on disk at the end.

## Repeat

Use two clean checkouts at the supplied base and head. Install each with `vp i`. All paths below are chosen scratch directories; never use a live T3 home.

1. `python3 seed.py "$SCRATCH"`
2. From each checkout, run `T3CODE_DEV_SEED=0 node scripts/dev-runner.ts dev:server --home-dir "$SCRATCH/$SIDE-home" --no-seed --port "$PORT"` and wait for startup. Use different ports for base and head.
3. From that checkout: `node mint.mjs "$SCRATCH/$SIDE-home" > "$SCRATCH/$SIDE-auth.json"` (private token file; do not upload).
4. From that checkout: `node apps/server/src/bin.ts auth session issue --base-dir "$SCRATCH/$SIDE-home" --token-only > "$SCRATCH/$SIDE-ws-token"` (private token file; do not upload).
5. `node clone-proof.mjs "$CHECKOUT" "$SCRATCH" "$SIDE" "$PORT"`. Run sides sequentially because the fixture binds port 15900. It caches raw Git HTTP responses across sides and prints their SHA256.
6. `python3 render.py "$RUN_OUTPUT_DIRECTORY"` with Pillow and ffmpeg available. This renders the actual events.json output, retains the full opening and closing transcript, and checks matching final frames 500 ms apart.

Both runs use the same driver and Node fetch defaults. No deadline was shortened, no clock was faked, and no server source was changed.
