# Capture review — continuation

PR [#32693](https://git.cafe/pingdotgg/t3code/pull/32693), before [d313b2aff3](https://git.cafe/pingdotgg/t3code/commit/d313b2aff31991ab94c8ac80cdc38a54dd575604), after [359bba3d25](https://git.cafe/pingdotgg/t3code/commit/359bba3d2571ec09bfc6ed67fb55c38a390ae60d).

Environment: Linux Chromium157; CSS1440×900,DPR2,font16px/100%,dark; Files maximized, explorer256px, preview1184px. R24 CSS900×900,light (theme clip dark→light),preview644px/900px; supplemental390px desktop viewport, no device emulation. Date frozen Nov11 noon; reduced motion matchMedia override. Local dev servers, synthetic files, deterministic free Replay follow-ups: recorded edit/command events invalidate the workspace without executing host edits. All restarted servers used T3CODE_DEV_SEED=0.

Method: Read all 33 catalog recording metadata/logs; decoded five frames per recording and viewed contact sheets, then decoded/viewed additional one-second sequences for ambiguous transitions. Compared every supplied settled a/b pair (equal); viewed supplemental stills and all three zero-threshold comparisons. Added six slower/controlled recordings for failed priority evidence: R04 pair, R15 three subcases, R03 controls. New endpoint pairs were equal. Privacy inspection scanned every staged artifact and ZIP member for credentials/private identifiers, inspected media metadata/strings, OCRed stills and 644 one-second video frames plus216 sampled frames/stills; new sampled frames/stills scanned separately. No credential or private runtime-identifier matches found. Private state, provider output, CLI auth/pairing files, and downloaded payload were excluded. Model-argument spelling was removed from public protocol; public attribution below.

Time bases: Actions/samples are performance.now milliseconds relative to instrumentation start; video recording begins later and some original clips have longer video timelines than logs. Treat `log` times as log times; do not align them to movie time without a visible matching state. The movies are raw chronological recordings; loading/error transitions remain in them as behavior, but transient frames are discarded as settled proof. No still was cropped, normalized or retouched to improve a diff.

| Row | Assessment | Original recording(s) | What the capture actually establishes |
|---|---|---|---|
| R01 | PARTIAL | [R01-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0863d317b93c4b99/R01-after.mp4) | 0–3.4s first-open.docx reaches a real 21-page Word document. The initial selection occurs after existing checkpoints; null mutation / first revision sentinel is not demonstrated. |
| R02 | VERIFIED | [R02-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5275e0d0eb2acbb7/R02-before.mp4) [R02-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/246d9aabe8dd6fb2/R02-after.mp4) | Two unchanged-byte Replay follow-ups and checkpoint completions; before identity1→6, scroll20368→0, after identity1/20368 throughout. Endpoints and chrome comparable. |
| R03 | VERIFIED | [R03-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cac08d99ff939208/R03-before.mp4) [R03-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c85303ea568fb20c/R03-after.mp4) [R03-navigation-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/adf640d5a4a143e0/R03-navigation-after.mp4) | Slide2 and scroll736 retained after no-op; before resets to slide1/scroll0. Original navigation clip actually opens Word and is rejected. Supplemental controls clip retains identity1/736 across checkpoint10→11, then shows slide3 and returns to2. |
| R04 | VERIFIED BEHAVIOR; QUALIFIED DIFF | [R04-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9805e134bb540be/R04-before.mp4) [R04-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7026fc0c7e515040/R04-after.mp4) [R04-navigation-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/62a5a1a7f980935b/R04-navigation-after.mp4) | Both original and recapture retain records rows101–150/scroll270,150 after; before resets to categories. Original still pair has search-vs-table focus mismatch and is not comparable. Recapture removes those rings but retains one unrelated pixel; no claim of perfect Diff0 comparability. One-row default table has no overflow scroller, so recapture end identity/scroll are null, not a measured zero. Original log ends identity5/0,0. |
| R05 | VERIFIED | [R05-readable-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/20a727ee906bbf7d/R05-readable-after.mp4) | 0–9.1s sheet2 selected, visibly F68 (driver action incorrectly calls it O68), scroll1000/500 retained after checkpoint18→19. Initial sheet change replaces identity1 with2 before no-op completion. |
| R06a | VERIFIED RETENTION; NAV PARTIAL | [R06a-scrolled-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f0013395737e8fed/R06a-scrolled-after.mp4) | RTF page2,125%, frame scrolled across checkpoint26→27, iframe identity1 throughout. Numeric iframe scroll is uninstrumented. Last ~0.4s Next/Previous actions are rushed; do not use them as full navigation proof. Later settled page2 supplemental still is explicitly labelled. |
| R06b | VERIFIED VISUALLY | [R06b-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b5895090d7bad7b1/R06b-after.mp4) | One-body ODT125%, focused iframe scrolled, checkpoint11→13, identity1. Numeric iframe scroll is uninstrumented; use visual text position. |
| R07 | VERIFIED VISUALLY | [R07-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ecdaaafde2a8470f/R07-after.mp4) | ODP slide2 and focused frame position remain through checkpoint13→14; iframe identity1. |
| R08 | VERIFIED VISUALLY | [R08-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d5b6199dc43a98c4/R08-after.mp4) | EPUB second chapter/scroll retained through checkpoint14→15; iframe identity1, numeric scroll uninstrumented. |
| R09 | VERIFIED | [R09-scrolled-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/51206a159ac58969/R09-scrolled-after.mp4) | Second ODS sheet, vertical1000 retained through checkpoint17→18. Action says horizontal500, but log measures horizontal0; do not claim horizontal retention. |
| R10 | VERIFIED | [R10-expanded-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/87ee95ecd3c6378a/R10-expanded-after.mp4) | Show more exposes25 cells, scroll6310 to cell24, saved text/image/HTML output present, checkpoint23→24 with identity1. Initial log sample occurs before scroll is set. |
| R11 | VERIFIED VISUALLY | [R11-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96e814a8443a1a2e/R11-after.mp4) | Nested text scrolled1000, no-op complete at log25.4s; image selected26.6s and no-op complete32.7s; back/parent returns to root. Archive identity sampler null for image/root, so no DOM continuity claim for those surfaces. |
| R12 | VERIFIED VISUALLY | [R12-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dfbaf127a5120df6/R12-after.mp4) | Font specimen loaded/scrolled through checkpoint22→23; iframe identity1. Top line is clipped at the deliberate scroll boundary; reject that boundary as a clean typography still. |
| R13 | VERIFIED | [R13-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d1f732d513c825b0/R13-after.mp4) | Unknown binary fallback identity1 through checkpoint8→9; Save invoked at log8.2s. Read-only SHA256 of downloaded payload equals synthetic fixture,360 bytes,d7a0f51b078648c52491ab85d1f0440db79915566c3b12d5dd5df31395be7a9d. Neither private payload nor private state uploaded. |
| R14 | VERIFIED | [R14-word-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/db01bae28e2dd803/R14-word-after.mp4) [R14-sqlite-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bea19509045d2da1/R14-sqlite-after.mp4) | Word A→B by video~5s, revert after log54.2s and A by video~57s; identity1→2→3,checkpoint5→7. SQLite400→401 by end32.9s,identity1→3,checkpoint7→8. Word endpoint decoded from73s video, not an independent equal-a/b export. Duplicate Capture end action95.1s in Word log is an export artifact after the75.2s recording stopped. |
| R15 | VERIFIED RECAPTURE | [R15-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/58776f3f54b33560/R15-after.mp4) | Original4s clip is rejected for settled proof: white blank0.4s and stale/ghosted table2.6s; replaced by Word11.3s,SQLite14.8s,binary15.2s clips. Refresh at log1.96/2.20/1.56s respectively. Word20368→0/id1→2; SQLite records/page101→categories/default, sampler1→null; binary fallbackid1→2. |
| R16 | PARTIAL | [R16-reconnect-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b5fa6995332098c/R16-reconnect-after.mp4) [R16-post-reconnect-edit-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19a6b2e190a702c4/R16-post-reconnect-edit-after.mp4) | Local server transport outage/error/reconnect only, not a remote environment. Label says section20 but log starts/ends scroll0, identities1→3. Therefore no retained-scroll assertion. Separate post-reconnect edit shows B then restoredA. Exact Loading/waiting and remote permission continuity remain unverified. |
| R17 | VERIFIED | [R17-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ef72c3720d8151ce/R17-after.mp4) | Loaded Word moved away, unavailable-file error by log9.7s, restored and Try again24.6s recoversA. Initial sample precedes deliberate section20 scroll; do not read its0 as the pre-delete ready position. |
| R18a | VERIFIED | [R18a-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/497dadf3a793fe87/R18a-after.mp4) | Cold missing-file mint failure reaches real error; recreate+Try again recoversWord by end11.8s. Intermediate white/stale bands at video~4.1s and7.6s excluded as settled frames. |
| R18b | VERIFIED | [R18b-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04b8f039ecc59ba2/R18b-after.mp4) | Authorized corrupt ZIP reaches renderer error; replace valid bytes and Refresh21.8s recovers. Intermediate stale/blank video~15.6s excluded as settled proof. |
| R19 | UNVERIFIED | None | No compatibility harness or recording. Current browser tests do not strip fileRevision or drive null→m1→m2; do not credit this row to them. |
| R20 | PARTIAL | [R20-real-draft-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5f255a361dd47cfd/R20-real-draft-after.mp4) | Real draft Word opens, section20 and Refresh reset shown. Same-draft mutations and first submission/resource transition absent. Browser tests do not exercise draft=true. |
| R21 | PARTIAL | [R21-real-draft-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3283f6141d5ea9f2/R21-real-draft-after.mp4) | Real draft binary opens and Refresh remounts. Exact mutation stability, changed bytes and draft disposition not instrumented/verified. Browser tests do not exercise draft=true. |
| R22 | PARTIAL | [R22-file-identity-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d13e0fbca4a43a7a/R22-file-identity-after.mp4) | Draft a/same-name A→b/same-name B→A is visible and logged. No second environment, thread/workspace switch, or draft↔persisted transition. |
| R23 | PARTIAL | [R23-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d6e7cbe8b31d642/R23-after.mp4) | NUL bad.txt reaches honest binary-content text-fetch error and Refresh does not fabricate a ready preview. bad.csv and render/source controls absent. |
| R24 | PARTIAL; RESIZE RETENTION NOT MET | [R24-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2cbe1fbe46963669/R24-after.mp4) [R24-theme-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/91732fb4d2b3c2d2/R24-theme-after.mp4) | 900×900 light long-path error/ready, explorer open/hidden, light font endpoint. Width change shows section20→15, so reading-position retention across resize is not established and visibly fails that expectation. Theme clip actually begins dark then becomes light at~1s, despite conflicting action labels; section20 retained afterward through two no-ops,identity1. No font theme transition or splitter drag captured. |

## Replacements and selected endpoints

[R04-recapture-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f93080b9d19c556f/R04-recapture-before.mp4) [R04-recapture-before-log.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/146fbc5f252fa761/R04-recapture-before-log.json) [R04-recapture-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4854b6d9a0a13717/R04-recapture-after.mp4) [R04-recapture-after-log.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d45db6696ae000ec/R04-recapture-after-log.json) [R15-word-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e5b75affc3442fd/R15-word-after.mp4) [R15-sqlite-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b07c5d86bb9123c9/R15-sqlite-after.mp4) [R15-binary-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7e8463f1bff19a1a/R15-binary-after.mp4) [R03-controls-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9a66596094418069/R03-controls-after.mp4) [R03-controls-after-log.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/626a8c5333c19f5e/R03-controls-after-log.json)

## Discarded frames and limitations

- Original R03-navigation-after entire clip: wrong file (Word), no slide-navigation proof. Replaced by R03-controls-after (checkpoint then2→3→2).
- Original R04 paired endpoints: unrelated search caret/focus ring versus selector outline; do not use its Diff0/Diff16 as controlled comparison. Replacement endpoints remove these outlines, but retain one unrelated physical search-chrome pixel at(2779,149),RGB31→30. Replacement Diff0 therefore also needs that qualification; Diff16 suppressing it does not prove it was absent.
- Original R15 entire4s clip: insufficient settled holds; video~0.4s blank and~2.6s stale/ghosted grid. Use the three new recordings.
- Non-ready samples excluded as settled proof: R01~1.2s blank; R02-before~1s/~17.7s spinners; R03-before~1s spinner/~4.9s blank; R05~0.9s sheet-change spinner; R06a initial spinner; R16 reconnect error/stale bands; R18a~4.1s/~7.6s and R18b~15.6s stale/blank blocks. These are not used as standalone endpoint images. Other renderer-load transitions in full movies are likewise chronological evidence, not settled stills.
- Scrolled boundaries clip partial rows/columns/text in R04,R05,R06b,R08,R09,R10,R11,R12; reject boundary strips as clean typography/layout evidence. R04's scrolled viewport necessarily shows clipped columns/rows and remaining space below the small default table; neither is evidence of missing content. Long filenames/breadcrumbs are ellipsized in R12/R24. No clean-full-text claim is made for those frames.
- Supplemental390px light/dark captures are separate viewport variants, never paired against1440px. R24 light/dark clip is labelled according to visible palette, not contradictory action text. No duplicated or ghosted DOM content was found in the selected settled stills. Video block artifacts listed above are excluded from endpoint proof.

## What else changed — zero-threshold inventory

- R02: Section/Page01 versus20 in heading and every numbered paragraph; page-edge/previous-page white strip and vertical content offset. Other header/explorer pixels match.165,135 physical pixels differ,bbox(359,344,2009,1576).
- R03: slide counter1/3 versus2/3; Previous disabled/enabled appearance; slide title and first bullet1 versus2; preceding-slide white strip/content position. Other header/explorer pixels match.66,638 pixels,bbox(47,361,2153,897).
- R04 original: categories versus records selector; page1–1 versus101–150 and navigation-control state;1row/2columns versus400rows/16columns; grid header names,widths,cell text,borders,scroll positions/scrollbars,clipped edge cells and populated versus empty viewport area; unrelated search caret/focus ring versus table-selector focus outline.2,043,789 pixels,bbox(0,149,2864,1800); not controlled/comparable.
- R04 replacement: the same table/page/count/header/cell/border/scroll/edge/empty-space differences; focus rings removed, plus one unrelated search-chrome RGB31→30 pixel.2,004,614 pixels,bbox(0,149,2780,1800). Of these,2,004,613 are in the preview and1outside. Not a perfectly controlled zero-threshold comparison. No pixels were removed from either diff.

## Browser tests and remaining scope

`vp test run apps/web/src/components/files/FilePreviewPanel.browser.test.tsx`:1file passed,6tests passed,16.93s. Four relevant cases cover unchanged revision, Loading preserving the previous revision, failed mint/remint, and changed bytes; two cover existing Markdown task behavior. They stub the Office renderer. The request says R19 and harness-only R16/R20/R21 are covered by these tests; source inspection does not support that exact claim. Missing fileRevision/null fallback, waiting=true, draft mutations, and first submission are not present in these six cases. They remain unverified rather than being credited to adjacent tests.

Coverage:25/26 named rows have recordings; R19 has none. Partial claims are identified above, including R01,R16,R20,R21,R22,R23,R24 and R06a navigation; R04 behavior is shown but the zero-threshold comparison retains an unrelated pixel. This is a qualified evidence package, not full proof-matrix completion.

Cleanup: both continuation dev servers stopped by their captured exec sessions, listener ports5752/13792/8468/16508 verified closed; own browser tab closed; original synthetic SQLite fixture restored; before worktree removed with git worktree remove. After worktree clean; no commits,pushes,PR edits or real provider turns.

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

FRICTION: brief | requested harness coverage is absent from the supplied browser tests | distinguish adjacent test coverage from exact harness cases; tool | raw record/log timelines differ and original navigation/Refresh captures were incomplete | begin instrumentation immediately before recording and hold each ready state; other | R04 focus mismatch and residual one-pixel chrome difference | control focus and inspect zero-threshold chrome before selecting paired endpoints.
