# Evidence: #15725 · T3 Connect sign-in surfaces offer Retry after Clerk fails to load

Before = `8d3b061121` (main merge-base), After = `492c26c4e6` (fix/issue-15725). Both are the real built app: the desktop rows use the built Electron app with the web bundle swapped (`client-before` / `client-after`, after rebuilt at 492c26c4e6). The hosted rows serve the same two bundles as `https://app.t3.codes` through a local HTTPS stand-in. No component harnesses.

**Rows captured: 20 / 24 matrix rows** (all 16 "affected" rows except S7/W7/H4/C4, plus every control row). X1 was captured in the real hosted app with a path-level failure, not a harness.

## What else changed (every visible difference at fuzz 0)
Nothing below falls outside the fix title, except the two pixel-level items at the end, which are not caused by the fix.
- Settings footer (S2, S6, X1-S): an empty footer becomes "↻ Retry T3 Connect". Only the 157×14 footer region differs.
- Wizard (W2, W6): the label changes from "Loading sign-in…" to "Couldn't load. Retry". The T3 Connect icon and label also go from the dimmed disabled style to full enabled contrast, because the trigger is now enabled. This is intended, but it is a visible change beyond the label.
- Wizard W5 (pairing in flight): only the label changes. The trigger stays disabled in both builds.
- HostedEmptyState step 1 (H2, X1-H): the disabled "Sign in" becomes an enabled primary "Retry sign-in". This is a different width, so the diff region is 133×32.
- /connect (C2, X1-C): a new "Retry sign-in" button grows the card, and because the card is vertically centred, **the whole card shifts up about 28 px**. That is why the diff covers the full card (648×378). It is a layout consequence of the added button.
- Behaviour, from the recordings: Retry reloads the page. In W4, that reload resets the wizard's unchecked fs-11 checkbox back to checked. The fix comment says this is expected ("a reload is the only recovery"), but users lose wizard input.
- Not from the fix: S2 W·D has a 1×100 px column at x=1439, y=81–180. That is the overlay scrollbar thumb caught in a different fade state.
- Not from the fix: W5 has 1–3 px corner pixels of the T3 Connect row border (about 10 px in total). These are anti-aliasing or rendering noise on a row whose state is otherwise unchanged.
- Identical at fuzz 0 (AE0 = 0): S1, S5, W1, H1, C1, H5 controls.

## Proof audit pass 2 (redone rows)
- **S3 (both builds):** the screencast stops sending frames when the page reloads, so the first S3-after video ended on an empty footer. The recorder now also takes a screenshot every 500 ms from the moment Retry is clicked, merged into the video by wall-clock time, and keeps going until 5 s after the final step. The last-frame stills are attached and checked against the page: after shows "Sign in to T3 Connect" (present: true), before shows the empty, stuck footer (present: false).
- **C2 W·L:** /connect ignores a light/dark change made after the page loads, so the first light pair was byte-identical to the dark pair. The light theme is now set before navigation (web.mjs row `C2L`). Mean gray brightness is 0.944 before and 0.943 after, against 0.054 and 0.056 for dark.

## Unverified
- S7, W7, H4, C4: these need a signed-in T3 Connect account, which we don't have.

## Conditions and notes
- Viewports: 1440×900 and 390×844, per the evidence brief. The matrix's "W = 1280×800" was not used.
- DPR 1, no font scaling, `prefers-reduced-motion: reduce` emulated. The clock is not frozen; every capture waits a fixed time from page load, the same in both builds.
- "Failed" stills are taken 25 s after load. Clerk reaches status `error` about 14 s after load with clerk.t3.codes refused.
- Desktop seeding: a fresh copy of the template `T3CODE_HOME`/`XDG_CONFIG_HOME` per run, plus `T3CODE_PORT=3791`, so the "Version" row URL is identical. The block flag is `/tmp/r15725/block`, on the lead's proxy :18925.
- Hosted seeding: `webstack.mjs` (static :18443, clerk stand-in :18444, CONNECT proxy :18926) with its own block flag `/tmp/r15725/block-web`.
- The hosted shell shows only a splash until Clerk settles, so H1 is the first frame where the steps render (3.9 s after, 6.5 s before).
- W3k focuses the trigger with `element.focus()`, then presses Enter through CDP Input.
- Rebuild any state: `swap.sh <before|after>`; `node desk.mjs <variant> S12 S5 W12 H5 S3 S4 W3 W3k W4 W5`; `node web.mjs <variant> H12 S6 W6 C1 C2 C2L H3 C3 X1 X1C X1S`; `diff.sh <name>`; `sbs.sh <row>`.
- Scripts: [lib.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/72c1da9e41b14c35/lib.mjs), [desk.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca287868f82e3d69/desk.mjs), [web.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dbb549d947fe2c92/web.mjs), [webstack.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0e61dcfe8f51f373/webstack.mjs), [diff.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ef7bbecee5a35e18/diff.sh), [sbs.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5be5ac8a2f4bbb52/sbs.sh), [swap.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9a424b5054e962f1/swap.sh), [rundesk.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/549077fb202590ae/rundesk.sh), [runweb.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e9e3bb7ba1eb9277/runweb.sh), [proxy.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d3913077c146f58f/proxy.mjs) [gen-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/35bc55c782d64e20/gen-evidence.py) [evidence-head.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25c5a012fef65d38/evidence-head.md)

## Settings footer (desktop)

#### S1 · S1-W-D · 1440×900 dark · control: Clerk loading (~0.6 s after load)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![S1-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/79f4914acf8e9e50/S1-W-D-before.png) | ![S1-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7778c2b12f4f186b/S1-W-D-after.png) | ![S1-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b646a651fadbce1/S1-W-D-diff0.png) | ![S1-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/58e4888fe7a045d5/S1-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 0 px, bbox 1x1-1-1 | AE6% = 0 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### S2 · S2-W-D · 1440×900 dark · Clerk failed (25 s after load)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![S2-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5da7e99d8eec3955/S2-W-D-before.png) | ![S2-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e9ad556077a97a49/S2-W-D-after.png) | ![S2-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50fbead99c573ece/S2-W-D-diff0.png) | ![S2-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/381cd8f8d705f401/S2-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 744 px, bbox 1421x766+19+81 | AE6% = 559 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### S2 · S2-W-L · 1440×900 light · Clerk failed (25 s after load)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![S2-W-L-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eae04c8c5197bc5b/S2-W-L-before.png) | ![S2-W-L-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a3364c2b7154f61e/S2-W-L-after.png) | ![S2-W-L-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/388d40cd520c37dd/S2-W-L-diff0.png) | ![S2-W-L-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da03f53bf69a5896/S2-W-L-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 809 px, bbox 157x14+19+833 | AE6% = 703 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=light + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### S2 · S2-N-D · 390×844 dark · Clerk failed (25 s after load)
N·D: settings sidebar opened as a sheet via its trigger.
| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![S2-N-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8ccceaf0d7b3393e/S2-N-D-before.png) | ![S2-N-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c433a058e3d6209/S2-N-D-after.png) | ![S2-N-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7615fdadee76bde5/S2-N-D-diff0.png) | ![S2-N-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a76f7d4436729e7c/S2-N-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 644 px, bbox 156x14+19+777 | AE6% = 551 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 390x844 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### S3 · recording · 1440×900 dark · failed → unblock → click Retry → Sign in
DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.1s page loaded at #/settings/connections, clerk.t3.codes blocked
t=25.0s footer Retry visible: false
t=25.0s rm /tmp/r15725/block (network restored)
t=28.0s "Retry T3 Connect" not present: nothing to click
t=60.5s "Sign in to T3 Connect" visible: false (32.5s after action)
t=60.6s footer: Retry=false SignIn=false
t=66.4s final frame p00124.png: DOM has "Sign in to T3 Connect": false
```
**after (`492c26c4e6`) steps:**
```
t=0.0s page loaded at #/settings/connections, clerk.t3.codes blocked
t=25.0s footer Retry visible: true
t=25.0s rm /tmp/r15725/block (network restored)
t=28.0s click "Retry T3 Connect"
t=30.9s "Sign in to T3 Connect" visible: true (2.8s after action)
t=30.9s footer: Retry=false SignIn=true
t=36.7s final frame p00043.png: DOM has "Sign in to T3 Connect": true
```
Last video frame (proof of end state): before ![S3-before-lastframe.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/378a8d3f67081ec1/S3-before-lastframe.png) after ![S3-after-lastframe.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d42bd8d3ba01860/S3-after-lastframe.png)

| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [S3-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2bc73de42a01f59e/S3-before.mp4) | [S3-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/094e1f6063a19862/S3-after.mp4) | [S3-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/43e1ec569fd53d13/S3-before-vs-after.mp4) |

#### S4 · recording · 1440×900 dark · failed → click Retry while still blocked
DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.0s page loaded at #/settings/connections, clerk.t3.codes blocked
t=24.8s footer Retry visible: false
t=27.8s "Retry T3 Connect" not present: nothing to click
t=60.3s "Retry T3 Connect" visible: false (32.5s after action)
t=60.3s footer: Retry=false SignIn=false
```
**after (`492c26c4e6`) steps:**
```
t=0.0s page loaded at #/settings/connections, clerk.t3.codes blocked
t=25.0s footer Retry visible: true
t=28.0s click "Retry T3 Connect"
t=44.1s "Retry T3 Connect" visible: true (15.9s after action)
t=44.2s footer: Retry=true SignIn=false
```
| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [S4-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1674cef2fb099d8/S4-before.mp4) | [S4-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f695decf2843416/S4-after.mp4) | [S4-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9a8865a431484d1/S4-before-vs-after.mp4) |

#### S5 · S5-W-D · 1440×900 dark · control: signed out, Clerk loaded (no block)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![S5-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/460d2485d13609eb/S5-W-D-before.png) | ![S5-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ab6e6cd4942d8fa/S5-W-D-after.png) | ![S5-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/62ccc8d7a1c829c3/S5-W-D-diff0.png) | ![S5-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2b3957e48bdecc21/S5-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 0 px, bbox 1x1-1-1 | AE6% = 0 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### S6 · S6-W-D · 1440×900 dark · hosted /settings/connections, Clerk failed

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![S6-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/729d0f137931c77e/S6-W-D-before.png) | ![S6-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53231c99045d67b1/S6-W-D-after.png) | ![S6-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7b1a25e3e0dc2ecc/S6-W-D-diff0.png) | ![S6-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb48065efc15b83d/S6-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 812 px, bbox 157x14+19+833 | AE6% = 710 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

## Welcome wizard

#### W1 · W1-W-D · 1440×900 dark · control: loading (~0.6 s after load)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![W1-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8c83ccd20e30acb0/W1-W-D-before.png) | ![W1-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c3be4ecf758e8a9d/W1-W-D-after.png) | ![W1-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6532141faf2eef59/W1-W-D-diff0.png) | ![W1-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c32fb659550fcc28/W1-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 0 px, bbox 1x1-1-1 | AE6% = 0 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### W2 · W2-W-D · 1440×900 dark · Clerk failed (25 s after load)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![W2-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b39e5c3fb3a7336/W2-W-D-before.png) | ![W2-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3277dcd020396f60/W2-W-D-after.png) | ![W2-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7d951e37fba3bf6a/W2-W-D-diff0.png) | ![W2-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4e3295724529a59/W2-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 4226 px, bbox 714x26+363+527 | AE6% = 3941 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### W2 · W2-W-L · 1440×900 light · Clerk failed (25 s after load)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![W2-W-L-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/612cf1275b9926c1/W2-W-L-before.png) | ![W2-W-L-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de45dcfcd10918e5/W2-W-L-after.png) | ![W2-W-L-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/abd21c1da9c8d533/W2-W-L-diff0.png) | ![W2-W-L-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/88d816b77e1cb249/W2-W-L-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 4241 px, bbox 714x26+363+527 | AE6% = 3952 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=light + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### W2 · W2-N-D · 390×844 dark · Clerk failed (25 s after load)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![W2-N-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5297adf2414dcb1f/W2-N-D-before.png) | ![W2-N-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5a6a505d95aec89a/W2-N-D-after.png) | ![W2-N-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4904147c03203165/W2-N-D-diff0.png) | ![W2-N-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/56e52a1f28905ccf/W2-N-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 2784 px, bbox 304x54+43+441 | AE6% = 2487 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 390x844 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### W3 · recording · 1440×900 dark · failed → unblock → click row → Sign in
DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.0s page loaded at #/welcome, clerk.t3.codes blocked
t=0.1s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s rm /tmp/r15725/block (network restored)
t=28.0s click "T3 Connect" (control is disabled)
t=60.7s "Sign in" visible: false (32.6s after action)
t=60.7s T3 Connect row: "T3 Connect / Loading sign-in…"; fs-11 checked: true
```
**after (`492c26c4e6`) steps:**
```
t=0.0s page loaded at #/welcome, clerk.t3.codes blocked
t=0.1s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s T3 Connect row: "T3 Connect / Couldn't load. Retry"
t=25.0s rm /tmp/r15725/block (network restored)
t=28.0s click "T3 Connect"
t=31.5s "Sign in" visible: true (3.3s after action)
t=31.6s T3 Connect row: "T3 Connect / Sign in"; fs-11 checked: true
```
| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [W3-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/72d6b40c6b158ff1/W3-before.mp4) | [W3-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1600cd1687897dd/W3-after.mp4) | [W3-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bd0e57c5e9c8a430/W3-before-vs-after.mp4) |

#### W3k · recording · 1440×900 dark · W3 via keyboard: trigger focused programmatically, Enter pressed
DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.1s page loaded at #/welcome, clerk.t3.codes blocked
t=0.2s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s rm /tmp/r15725/block (network restored)
t=28.0s focus T3 Connect trigger (focused=true), press Enter
t=60.6s "Sign in" visible: false (32.6s after action)
t=60.6s T3 Connect row: "T3 Connect / Loading sign-in…"; fs-11 checked: true
```
**after (`492c26c4e6`) steps:**
```
t=0.1s page loaded at #/welcome, clerk.t3.codes blocked
t=0.3s T3 Connect row: "T3 Connect / Loading sign-in…"
t=24.9s T3 Connect row: "T3 Connect / Couldn't load. Retry"
t=24.9s rm /tmp/r15725/block (network restored)
t=27.9s focus T3 Connect trigger (focused=true), press Enter
t=30.5s "Sign in" visible: true (2.5s after action)
t=30.5s T3 Connect row: "T3 Connect / Sign in"; fs-11 checked: true
```
| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [W3k-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/136c5f10708c5349/W3k-before.mp4) | [W3k-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c82c54c673698992/W3k-after.mp4) | [W3k-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8707efbb32169a7/W3k-before-vs-after.mp4) |

#### W4 · recording · 1440×900 dark · failed → uncheck fs-11 → Retry while blocked
DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.0s page loaded at #/welcome, clerk.t3.codes blocked
t=0.1s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s unchecked fs-11 (wizard input) before Retry
t=28.8s click "T3 Connect" (control is disabled)
t=56.6s T3 Connect row: "T3 Connect / Loading sign-in…"; fs-11 checked: false
```
**after (`492c26c4e6`) steps:**
```
t=0.0s page loaded at #/welcome, clerk.t3.codes blocked
t=0.0s T3 Connect row: "T3 Connect / Loading sign-in…"
t=25.0s T3 Connect row: "T3 Connect / Couldn't load. Retry"
t=25.0s unchecked fs-11 (wizard input) before Retry
t=28.8s click "T3 Connect"
t=56.5s T3 Connect row: "T3 Connect / Couldn't load. Retry"; fs-11 checked: true
```
| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [W4-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/98d27a70da00cc53/W4-before.mp4) | [W4-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/91b528fe81a5dbd8/W4-after.mp4) | [W4-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f55df4da3920ba1/W4-before-vs-after.mp4) |

#### W5 · recording · 1440×900 dark · failed + pairing in flight (https://10.255.255.1 never connects) → click disabled row
DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.0s page loaded, clerk.t3.codes blocked
t=25.0s T3 Connect row label: "T3 Connect / Loading sign-in…"
t=25.0s click "Add a computer"
t=26.2s pasted pairing link to unroutable 10.255.255.1
t=26.8s click "Pair"
t=29.1s T3 Connect row label: "T3 Connect / Loading sign-in…"; trigger disabled=true
t=29.1s click "T3 Connect" (control is disabled)
t=32.3s after click: label "T3 Connect / Loading sign-in…" (no reload expected)
```
**after (`492c26c4e6`) steps:**
```
t=0.0s page loaded, clerk.t3.codes blocked
t=25.0s T3 Connect row label: "T3 Connect / Couldn't load. Retry"
t=25.0s click "Add a computer"
t=26.2s pasted pairing link to unroutable 10.255.255.1
t=26.8s click "Pair"
t=29.3s T3 Connect row label: "T3 Connect / Couldn't load. Retry"; trigger disabled=true
t=29.3s click "T3 Connect" (control is disabled)
t=32.5s after click: label "T3 Connect / Couldn't load. Retry" (no reload expected)
```
| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [W5-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/643a9f2c0617c1ad/W5-before.mp4) | [W5-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b0e526fc40dcba7b/W5-after.mp4) | [W5-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e6f60c1ca429143c/W5-before-vs-after.mp4) |

#### W5 · W5-W-D · 1440×900 dark · still taken 1.5 s after Pair

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![W5-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fe6cd3d5b10cbd3/W5-W-D-before.png) | ![W5-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b158c342085f1b10/W5-W-D-after.png) | ![W5-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fbf70dc6219f7c1e/W5-W-D-diff0.png) | ![W5-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1cc920236d2c7173/W5-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 775 px, bbox 716x41+362+473 | AE6% = 520 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

#### W6 · W6-W-D · 1440×900 dark · hosted /welcome, Clerk failed

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![W6-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e4c0b21e9d7ad484/W6-W-D-before.png) | ![W6-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8963f434b2001f78/W6-W-D-after.png) | ![W6-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bae71debf2a2dbd0/W6-W-D-diff0.png) | ![W6-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/66b9eeb533ad1eb0/W6-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 5671 px, bbox 716x27+362+485 | AE6% = 3945 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

## HostedEmptyState (hosted web /)

#### H1 · H1-W-D · 1440×900 dark · control: first frame the steps render (splash before that)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![H1-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9fd9ddccdd399bc5/H1-W-D-before.png) | ![H1-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ed29ab8e46a25ea4/H1-W-D-after.png) | ![H1-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1aae07e23e7ed115/H1-W-D-diff0.png) | ![H1-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d3b3bc651d4f997/H1-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 0 px, bbox 1x1-1-1 | AE6% = 0 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### H2 · H2-W-D · 1440×900 dark · Clerk failed (25 s after navigation)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![H2-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0fa5a93596fa389b/H2-W-D-before.png) | ![H2-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9ffae8d73e75e2de/H2-W-D-after.png) | ![H2-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de6f1564c2d8d4db/H2-W-D-diff0.png) | ![H2-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ee9dde19c125b5e/H2-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 4179 px, bbox 133x32+674+442 | AE6% = 3697 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### H2 · H2-W-L · 1440×900 light · Clerk failed (25 s after navigation)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![H2-W-L-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/28beb57850d36586/H2-W-L-before.png) | ![H2-W-L-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d204b764a02f39b8/H2-W-L-after.png) | ![H2-W-L-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3581d94cbba6c92a/H2-W-L-diff0.png) | ![H2-W-L-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4f0c5500cb1804ad/H2-W-L-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 4179 px, bbox 133x32+674+442 | AE6% = 3626 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=light, reduced-motion emulated, no font scaling.

#### H2 · H2-N-D · 390×844 dark · Clerk failed (25 s after navigation)

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![H2-N-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2faf26d722bde5f0/H2-N-D-before.png) | ![H2-N-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a34101acbf9ed4ac/H2-N-D-after.png) | ![H2-N-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5bae9f73a0007b14/H2-N-D-diff0.png) | ![H2-N-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dcdeeec8582964fc/H2-N-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 5287 px, bbox 149x36+42+410 | AE6% = 4741 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 390x844 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### H3 · recording · 1440×900 dark · failed → unblock → Retry sign-in → Sign in enabled
HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.0s navigated to https://app.t3.codes/, clerk.t3.codes blocked
t=23.5s "Retry sign-in" visible: false
t=23.5s rm block-web (network restored)
t=26.5s "Retry sign-in" not present: nothing to click
t=56.6s enabled "Sign in" button: false (30.1s after action)
t=60.6s clerk modal open: false; "Sign in" button: disabled
```
**after (`492c26c4e6`) steps:**
```
t=0.0s navigated to https://app.t3.codes/, clerk.t3.codes blocked
t=23.5s "Retry sign-in" visible: true
t=23.5s rm block-web (network restored)
t=26.5s click "Retry sign-in"
t=29.8s enabled "Sign in" button: true (3.1s after action)
t=33.8s clerk modal open: false; "Sign in" button: enabled
```
| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [H3-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/66805cfcf3e80a20/H3-before.mp4) | [H3-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b6d8460916d80471/H3-after.mp4) | [H3-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4853e881b8445803/H3-before-vs-after.mp4) |

#### H5 · H5-W-D · 1440×900 dark · control: local environment off (desktop-settings.json seeded localEnvironmentEnabled=false), #/, block on

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![H5-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/67e3c945371e021a/H5-W-D-before.png) | ![H5-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1a382b24a6216e0c/H5-W-D-after.png) | ![H5-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e365c9d5daf869ea/H5-W-D-diff0.png) | ![H5-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f6f5635dd4dc85a3/H5-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 0 px, bbox 1x1-1-1 | AE6% = 0 px |

Environment: DESK: built Electron 44.9.3 app (main.cjs) under headless-desktop/Xvfb, CDP Emulation.setDeviceMetricsOverride 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark + prefers-reduced-motion=reduce emulated, no font scaling, fresh T3CODE_HOME/XDG copy per run, T3CODE_PORT=3791.

## /connect (hosted web)

#### C1 · C1-W-D · 1440×900 dark · control: no hash, block on

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![C1-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/46c51db0265e717f/C1-W-D-before.png) | ![C1-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7cb975822a3c1d40/C1-W-D-after.png) | ![C1-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9ec5c8aeaef02622/C1-W-D-diff0.png) | ![C1-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c054b9a99076fca4/C1-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 0 px, bbox 1x1-1-1 | AE6% = 0 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### C2 · C2-W-D · 1440×900 dark · valid request, Clerk failed

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![C2-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/853bc47a0e531319/C2-W-D-before.png) | ![C2-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/09f8f3210bfc2db3/C2-W-D-after.png) | ![C2-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/332d92b7a1c13b83/C2-W-D-diff0.png) | ![C2-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/924c0cc1bec8f505/C2-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 137731 px, bbox 648x378+396+286 | AE6% = 84194 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### C2 · C2-W-L · 1440×900 light · valid request, Clerk failed

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![C2-W-L-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d650b60797ccb4b0/C2-W-L-before.png) | ![C2-W-L-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4f469671868d77d0/C2-W-L-after.png) | ![C2-W-L-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/914c1d0b15c85e18/C2-W-L-diff0.png) | ![C2-W-L-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/86aca997ce991005/C2-W-L-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 157311 px, bbox 648x378+396+286 | AE6% = 109363 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=light, reduced-motion emulated, no font scaling.

#### C2 · C2-N-D · 390×844 dark · valid request, Clerk failed

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![C2-N-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3604e387f5417d21/C2-N-D-before.png) | ![C2-N-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b01e4336ce36cb2/C2-N-D-after.png) | ![C2-N-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f28a8a57c8b9726/C2-N-D-diff0.png) | ![C2-N-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ed90278e2e518c9d/C2-N-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 87586 px, bbox 390x418+0+238 | AE6% = 56448 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 390x844 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### C3 · recording · 1440×900 dark · failed → unblock → Retry sign-in → Clerk modal + Sign in
HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling. CDP Page.startScreencast frames → ffmpeg (variable-rate frames re-timed to wall clock, 25 fps output).

**before (`8d3b061121`) steps:**
```
t=0.0s navigated to https://app.t3.codes/connect#state=s1&challenge=c1&port=43123, clerk.t3.codes blocked
t=23.5s "Retry sign-in" visible: false
t=23.5s rm block-web (network restored)
t=26.5s "Retry sign-in" not present: nothing to click
t=56.6s enabled "Sign in" button: false (30.1s after action)
t=60.6s clerk modal open: false; "Sign in" button: absent
```
**after (`492c26c4e6`) steps:**
```
t=0.1s navigated to https://app.t3.codes/connect#state=s1&challenge=c1&port=43123, clerk.t3.codes blocked
t=23.5s "Retry sign-in" visible: true
t=23.5s rm block-web (network restored)
t=26.5s click "Retry sign-in"
t=29.7s enabled "Sign in" button: true (3.0s after action)
t=33.8s clerk modal open: true; "Sign in" button: enabled
```
| Before `8d3b061121` | After `492c26c4e6` | Side by side (before left) |
|---|---|---|
| [C3-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6a8dc1099273a91c/C3-before.mp4) | [C3-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9628a7872fb73d0/C3-after.mp4) | [C3-before-vs-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6f6733639d80b366/C3-before-vs-after.mp4) |

## X1: clerk-js loads, Clerk UI script fails (hosted web, real app, path-level failure)

Seed: `touch /tmp/r15725/x1`. The webstack proxy routes clerk.t3.codes to a local HTTPS stand-in that forwards every request to the real host but answers 503 for `/npm/@clerk/ui@1/dist/ui.browser.js` (log: `clerk-js@6.40.0/dist/clerk.browser.js` PASS, `@clerk/ui@1/dist/ui.browser.js` FAIL ×6). Stills taken 25 s after navigation.

#### X1 · X1-H-W-D · 1440×900 dark · HostedEmptyState /

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![X1-H-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3818968e7d6aad17/X1-H-W-D-before.png) | ![X1-H-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c7f132fab07bfd7/X1-H-W-D-after.png) | ![X1-H-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c2568bbd988ea311/X1-H-W-D-diff0.png) | ![X1-H-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c2237b2b64ef4438/X1-H-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 4179 px, bbox 133x32+674+442 | AE6% = 3697 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### X1 · X1-C-W-D · 1440×900 dark · /connect valid request

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![X1-C-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1344b4c542a037ff/X1-C-W-D-before.png) | ![X1-C-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4b1ed1f9f0ab2b2/X1-C-W-D-after.png) | ![X1-C-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19900b225346d283/X1-C-W-D-diff0.png) | ![X1-C-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d678826a5c090f63/X1-C-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 137731 px, bbox 648x378+396+286 | AE6% = 84194 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.

#### X1 · X1-S-W-D · 1440×900 dark · /settings/connections footer

| Before | After | Diff0 (fuzz 0, any channel change → red) | DiffT (fuzz 6%) |
|---|---|---|---|
| ![X1-S-W-D-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c062e8831bc02fef/X1-S-W-D-before.png) | ![X1-S-W-D-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ddb3f9b9f5a5b843/X1-S-W-D-after.png) | ![X1-S-W-D-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/28d32b849eb66d6a/X1-S-W-D-diff0.png) | ![X1-S-W-D-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c809ff488b8ab94/X1-S-W-D-diffT.png) |
| `8d3b061121` | `492c26c4e6` | AE0 = 812 px, bbox 157x14+19+833 | AE6% = 710 px |

Environment: HOSTED-WEB: Playwright chrome-headless-shell (chromium_headless_shell-1223) at https://app.t3.codes via local HTTPS stand-in + CONNECT proxy, --ignore-certificate-errors, fresh profile per run, CDP Emulation 1440x900 DPR 1, mobile=false, prefers-color-scheme=dark, reduced-motion emulated, no font scaling.
