## Evidence

On both commits, create a synthetic project and a Replay (dev) thread waiting on a question so its MCP session remains active. Open a healthy preview tab. Call preview_navigate with default readiness and timeoutMs: 4000 against immediate HTML/title plus a 20-second stalled image. Immediately call preview_status, then return to the healthy page. Call navigate against an endpoint that never sends headers (timeoutMs: 1000), then one that disconnects its socket, and recover. Finally navigate to a renderer-busy page, read status during its stall, and recover. On desktop, resize the native window from 1280x800 to 1200x760 while busy and read status both during and after recovery.

Linux web scenario: Chromium, 1280×800, light theme, fresh synthetic state. `scenarios:prove` exited 0: base failed the committed-navigation assertion; head passed. The fixture displays selected fields from actual MCP responses.

|  | Before<br>[8a38c63706](https://github.com/pingdotgg/t3code/commit/8a38c637069ff8c70f925dfc52220363f482944d) | After<br>[cc69fe3535](https://github.com/pingdotgg/t3code/commit/cc69fe35351c4d1ddaa1adc994bbe9f232bb2597) |
| --- | --- | --- |
| Result | ❌ failed<br>ASSERTION_FAILED: expected true to be false | ✅ passed |
| committed slow load | ![Base 8a38c63706: committed slow load](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f09ca6fdb12664a0/002-committed-slow-load.png) | ![Head cc69fe3535: committed slow load](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/40a53dd5ca735fef/002-committed-slow-load.png) |
| recovered | ![Base 8a38c63706: recovered](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d62d18193fb292ab/003-recovered.png) | ![Head cc69fe3535: recovered](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/afaf47404e654df8/003-recovered.png) |
| navigation errors and recovery | ![Base 8a38c63706: navigation errors and recovery](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b6bc03ccb49b4410/004-navigation-errors-and-recovery.png) | ![Head cc69fe3535: navigation errors and recovery](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b67e770625436f4c/004-navigation-errors-and-recovery.png) |
| busy renderer status | ![Base 8a38c63706: busy renderer status](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a93428e3c6a08fcf/005-busy-renderer-status.png) | ![Head cc69fe3535: busy renderer status](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0853056fc55a066f/005-busy-renderer-status.png) |

[Scenario source](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d314a1b340d5790/preview-committed-slow-load.e2e.ts).

Native Linux Electron, rebuilt separately at each commit, 1280×800 initially and 1200×760 after resize, light theme, fresh synthetic state. Desktop stills exclude the animated top 80 pixels and were saved after identical captures 500 ms apart.

| Step | Before<br>[8a38c63706](https://github.com/pingdotgg/t3code/commit/8a38c637069ff8c70f925dfc52220363f482944d) | After<br>[cc69fe3535](https://github.com/pingdotgg/t3code/commit/cc69fe35351c4d1ddaa1adc994bbe9f232bb2597) |
| --- | --- | --- |
| Committed document, stalled image | ![Before: Committed document, stalled image](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c84b9be99bfde6bb/before-slow.png) | ![After: Committed document, stalled image](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad1491d681afaca7/after-slow.png) |
| Return to healthy page | ![Before: Return to healthy page](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ebcbabe2d2df29c/before-recovery.png) | ![After: Return to healthy page](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc0d54871daa9eb5/after-recovery.png) |
| Never commits and socket error still fail | ![Before: Never commits and socket error still fail](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa2104c2c5df04c0/before-errors.png) | ![After: Never commits and socket error still fail](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/873b6e26bc87c0dc/after-errors.png) |
| Busy title and desktop viewport deadline | ![Before: Busy title and desktop viewport deadline](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/013ea1bb8b73303e/before-busy-status.png) | ![After: Busy title and desktop viewport deadline](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3f711a9012b0a2bc/after-busy-status.png) |

Base desktop navigation timed out at 4016 ms despite its committed target. Head returned the target URL/title with `loading: true` at 4021 ms. During the renderer stall and resize, base status took 6214 ms; head returned in 258 ms with `title: null` and cached viewport 1024×720. The next status measured 944×680. Never-committing navigation and ERR_EMPTY_RESPONSE failed on both commits, followed by successful recovery.

| Recording | Before | After |
| --- | --- | --- |
| Web | [Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/52e67625ae8d2956/before-web.webm) | [After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ea2443d16003b3b/after-web.webm) |
| Native desktop | [Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9a6aaddf71033fe7/before-desktop.mp4) | [After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95b36ca8280c0c47/after-desktop.mp4) |

[Before raw MCP responses](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3985616414efa84b/before-responses.json), [after raw MCP responses](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/98c54543f748a924/after-responses.json), [driver bundle](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc6621bb6979809b/driver-bundle-final.tar.gz). The head desktop evidence was regenerated from the downloaded, extracted bundle against a fresh build/database; archive SHA-256: `f5cd017d1885da8b37b42e128c2c8f91967e13fa824786ce98a1af427b8bfb11`.
