# F1 — touch — dark
Linux x86_64; Playwright Chromium 148.0.7778.96, headless; DPR 1; font scaling 100% (UI 16px, code 13px, terminal 12px); viewport/hasTouch only; dark 1280×800 (N1: 980×800, 700×800, 390×844, then 1280×800); reduced motion; fixed browser clock 2026-11-10T12:00:00Z. Touch: pointer:coarse=true and any-pointer:coarse=true; M1 mouse: both false.

Before [4c36119](https://git.cafe/pingdotgg/t3code/commit/4c361199f47f6ea32a2c14835df392640d0f7c63); After [30ab341](https://git.cafe/pingdotgg/t3code/commit/30ab3415f19f1c18e0ae2e6f0a86b302983a73a1).

Contact timestamps below are start–end, logged immediately before dispatch (never after the contact/wait). Video time is calibrated to the first visible pink marker at 25 fps; allow about 0.1s encoding precision.

| Step | Before contact / result | After contact / result |
|---|---|---|
| Chapter: maximized Files selected greeting.ts; inner separator centre and edges | 00:00.00 | 00:00.00 |
| Chapter: hidden explorer: no inner handle | 00:31.11 | 00:28.81 |
| Chapter: folder-only: no inner handle | 00:33.47 | 00:31.16 |
| Files offset 0 | 00:00.30–00:01.54; 256→276px (Δ+20); pointercancel; terminal labels 0→0 | 00:00.30–00:01.39; 256→336px (Δ+80); pointerup; terminal labels 0→0 |
| Files reverse 0 | 00:06.27–00:07.64; 276→256px (Δ-20); pointercancel; terminal labels 0→0 | 00:04.81–00:05.99; 336→256px (Δ-80); pointerup; terminal labels 0→0 |
| Files offset -6 | 00:09.07–00:10.34; 256→276px (Δ+20); pointercancel; terminal labels 0→0 | 00:07.41–00:08.65; 256→336px (Δ+80); pointerup; terminal labels 0→0 |
| Files reverse -6 | 00:11.77–00:13.34; 276→256px (Δ-20); pointercancel; terminal labels 0→0 | 00:10.07–00:11.38; 336→256px (Δ-80); pointerup; terminal labels 0→0 |
| Files offset 6 | 00:14.77–00:16.13; 256→276px (Δ+20); pointercancel; terminal labels 0→0 | 00:12.85–00:14.10; 256→336px (Δ+80); pointerup; terminal labels 0→0 |
| Files reverse 6 | 00:17.54–00:18.77; 276→256px (Δ-20); pointercancel; terminal labels 0→0 | 00:15.51–00:16.69; 336→256px (Δ-80); pointerup; terminal labels 0→0 |
| Files offset -10 | 00:20.20–00:21.49; 256→276px (Δ+20); pointercancel; terminal labels 0→0 | 00:18.12–00:19.31; 256→336px (Δ+80); pointerup; terminal labels 0→0 |
| Files reverse -10 | 00:22.90–00:24.15; 276→256px (Δ-20); pointercancel; terminal labels 0→0 | 00:20.69–00:21.87; 336→256px (Δ-80); pointerup; terminal labels 0→0 |
| Files offset 10 | 00:25.52–00:26.62; 256→256px (Δ+0); pointercancel; terminal labels 0→0 | 00:23.32–00:24.45; 256→256px (Δ+0); pointercancel; terminal labels 0→0 |
| Files reverse 10 | 00:28.06–00:29.24; 256→256px (Δ+0); pointercancel; terminal labels 0→0 | 00:25.88–00:27.05; 256→256px (Δ+0); pointercancel; terminal labels 0→0 |
| hide explorer | 00:30.30–00:30.43; see size/target log; pointerup; terminal labels 0→0 | 00:28.02–00:28.14; see size/target log; pointerup; terminal labels 0→0 |
| show explorer | 00:31.68–00:31.80; see size/target log; pointerup; terminal labels 0→0 | 00:29.41–00:29.54; see size/target log; pointerup; terminal labels 0→0 |
| folder-only workspace | 00:32.56–00:32.71; 256→1024px (Δ+768); pointerup; terminal labels 0→0 | 00:30.29–00:30.42; 256→1024px (Δ+768); pointerup; terminal labels 0→0 |

| Before recording | After recording |
|---|---|
| [before-F1.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30b7c1b4f0f2f761/before-F1.mp4)<br>[4c36119](https://git.cafe/pingdotgg/t3code/commit/4c361199f47f6ea32a2c14835df392640d0f7c63) | [after-F1.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/408a9db5d79dbfa3/after-F1.mp4)<br>[30ab341](https://git.cafe/pingdotgg/t3code/commit/30ab3415f19f1c18e0ae2e6f0a86b302983a73a1) |

Narration is composited below the app viewport; stills and diffs contain only app pixels. Every still passed reduced motion, network idle, fonts ready and two pixel-identical screenshots 500ms apart.

| Before | After | Diff0 | DiffT (>5/255 maximum RGB channel difference) |
|---|---|---|---|
| ![Before](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3463308ba473e84d/before-F1.png) | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eaba427a3094ad9f/after-F1.png) | ![Diff0 ×255](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/beedc2d18843ba23/F1-diff0.png) | ![DiffT](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/225dae998ceda6c3/F1-diff5.png) |

[Before full probe log](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f4e6602487756419/before-F1.jsonl) · [After full probe log](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/caa7f79face2fe1a/after-F1.jsonl)

[Before matching video frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/038f066f4670ae5b/before-F1-video-frame.png) · [After matching video frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/069aeaa874975b22/after-F1-video-frame.png)

![Before / After / Diff0 / DiffT](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb3c63aa5b34ad53/F1-sheet.png)

Changed pixels: exact=10159; threshold >5=9983.

The export trims code-loading preparation and retains 0.30s before the first touch contact; every interaction remains in the recording.
