## Evidence

[index.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7174880c5439edce/index.md) · [evidence-full.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/357c78ee6c88a4bd/evidence-full.md)

Visible differences beyond ZIP UI include native iOS clock/battery, Quick Look toolbar blur/title residue and slight document-text position changes; capture-condition differences are disclosed below.

**Incomplete capture handoff; not merge approval.** 44/46 row IDs have captures or reused web proof: 36 complete (including three reused web rows), eight partial, two unverified. The matrix expands to 53 device/theme tuples: 41 complete/reused, ten partial, two unverified. Every matrix row is accounted for below. Full and partial status applies to the requested sequence, not just whether an image exists. Missing states are explicitly unverified.

Before [f3b058cd6a][before]; After [420bc45432][after].

Native environment: real T3 Code Expo development clients from each pinned checkout, independently served JS bundles and fresh isolated server homes (T3CODE_DEV_SEED=0); one continuous lease per platform. AP: Pixel 9 Android 16/API 36, 411.43×923.43 logical, 1080×2424 physical, DPR 2.625, fontScale 1, safe area top/bottom 24, portrait. IP: iPhone 17 Pro iOS 27.2, 402×874 logical, 1206×2622 physical, DPR 3, fontScale 1, safe top 62/bottom 34, portrait. L/D are explicit built-in light/dark. Native fingerprints match across revisions: Android ed36a9cc9856c84a322bb71e6d67744f0a00877d; iOS f532a0c5902b69c7f69cc5fe9c807053700a07eb. Android animations disabled/reduced motion; PNG status bar normalized to 9:41, recordings retain native clock. iOS normalized charging battery would not settle, so original native clock/battery retained. No web/device emulation is used for native captures.

Capture conditions: each selected still passed two identical full-screen RGB captures ≥500ms apart and visual review. Native UI has no browser network-idle/font-ready API: route/content readiness and pixel equality were used; independent network-idle/fonts assertions remain unavailable. R01–R05 redo freezes JS Date at 2026-10-27T21:00:00Z; other mobile rows and iOS native clock were not globally frozen. The matrix explicitly narrows widths/themes; no new 1440/390 web screenshots were requested. Android recordings split at 180s and omit static trailing frames. The last table-gesture/remove recording has a truncated static tail; its actions through draft Remove and source return are present, while the later settled still is separate. Written chapter seconds are command elapsed time, not a frame-accurate performance measurement; complete UTC steps and native telemetry are provided.

New ZIP-only rows use the labelled shared generic ZIP Before, not a pixel-comparable image of the new state. Consequently Diff0/DiffT are N/A on those rows as permitted by the matrix; unlike-screen diffs would be misleading. Before asset is proof.zip, 13,258,879 bytes, 28 files after expansion; name/route/draft differences in smaller variants are explicitly contextual. Local drafts retain fixture v1; remote partial.txt was revised to bounded-width lines at identical size in v2. Both manifests/bytes are uploaded. Regular regressions use actual matched assets/routes. N = normal UI; D = production route/RPC/local-store driver; H = controlled external dependency in the real native app, labelled per row.

What else changed:

- Intended: generic ZIP fallback becomes searchable/collapsible archive tree, progress/cancel/retry/guard states, entry previews, native viewer return state, Save/Add and draft Remove actions. Header metadata/actions vary by selected entry, local draft, destination availability and platform as shown. The AP ZIP view fills the area occupied by bottom navigation on the generic Settings-origin Before; IP retains its native floating navigation chrome.
- Fixtures/context: shared Before has generic ZIP metadata; new entry screenshots have entry name/path/size and different root fixture variants. Committed vs draft caller chrome, context title, keyboard, selection handles and share/native viewer UI are deliberate state differences, not attributed source changes.
- Environment: iOS native clock/battery, Quick Look toolbar blur/title residue, a slight document-text vertical offset and viewer timestamps differ between captures; no claim of pixel equality on those pairs. Native audio/video times, Android share targets/Photos onboarding, scroll positions selected for each new state, and system modal surfaces vary by scripted state.
- Observed limitations: iOS partial text body stayed blank; Android large/partial CSV work became unresponsive; corrupt WAV stayed Loading; a native share attempt threw on iOS. These are retained as diagnostics and incomplete proof, not asserted to be new regressions without a matching Before reproduction.
- R02 main has 6,646 changed edge pixels at zero threshold, all within 5/255 channel intensity and none above 16/255; header, text and bottom navigation glyph edges vary slightly. Menus/wrapped source and R01/R03/R04/R05 selected states are pixel-identical at zero threshold. No source, tests, commits, pushes, or PR edits were made. No CI/review readiness conclusion is drawn. Dev import traces do not establish production bundle/transfer parity.

Full checkpoint sequences, all split recordings, exact command chapters, additional stills and regression pairs: [sheet-tree-progress.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b080842ad7b80d0d/sheet-tree-progress.md) · [sheet-entries.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aafa5f49be88ad23/sheet-entries.md) · [sheet-native-actions.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2fe4d2d4cbda5a11/sheet-native-actions.md) · [sheet-regressions.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/456f188dd5e722bf/sheet-regressions.md)

### M01 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Tap committed ZIP card → inspect tree → scroll lower/deeper → back.

Committed file card and actual context-reference control both reach the archive; the context route preserves the long archive title.

Checkpoint **20.9s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64c724059e086a0a/M01-AP-L-context-long-final.png) | N/A (new-only) | N/A (new-only) |

### M01 · IP-D · 402×874 — CAPTURED

N/D. Steps: Open committed card; scroll and return; open long-named context reference → same tree.

Context route supplies long display name; manifest retains actual asset bytes.

Checkpoint **228.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/14b01c2e2f1bfe45/M01-IP-D-context-long-root.png) | N/A (new-only) | N/A (new-only) |

### M02 · AP-L · 411.43×923.43 — CAPTURED

D. Steps: One-file ZIP with sizeBytes=0.

Checkpoint **54.8s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e85bc8ed42a5644/M02-AP-L.png) | N/A (new-only) | N/A (new-only) |

### M03 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: EOCD-only zero-entry ZIP.

Checkpoint **10.4s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cd2a79137ec50939/M03-AP-L.png) | N/A (new-only) | N/A (new-only) |

### M04 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Collapse and expand explicit empty folder in directories-only ZIP.

Checkpoint **19.1s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/31d88568dd07b9a2/M04-AP-L.png) | N/A (new-only) | N/A (new-only) |

### M05 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Collapse one-file and multi-file folders; expand again.

Checkpoint **40.9s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea5369c2754bb938/M05-AP-L-collapsed.png) | N/A (new-only) | N/A (new-only) |

### M06 · AP-L · 411.43×923.43 — PARTIAL

N. Steps: Collapse folder → padded mixed-case query → child → Back → drag; whitespace query checkpoint.

Query, keyboard, descendant matching and preserved return are visible. Final keyboard-dismiss command failed; final whitespace clear-icon activation was not completed. M07 separately records the empty-state Clear filter button.

Checkpoint **53.9s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/10e2e205cc89d250/M06-AP-L-filter-keyboard.png) | N/A (new-only) | N/A (new-only) |

### M07 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Type long absent query → empty-state Clear filter → restored tree.

Checkpoint **165.5s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a3e75d5ea1a17d38/M07-AP-L-no-match.png) | N/A (new-only) | N/A (new-only) |

### M08 · AP-L · 411.43×923.43 — CAPTURED

H: expo/fetch reader hold. Steps: Hold first fetch read at 0 bytes → Opening ZIP → navigate away → reopen → release real bytes → ready.

Opening spinner is recording-only; still is ready, not a fake settled spinner.

Checkpoint **26.7s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c000012d2400813/M08-AP-L-ready-after-away.png) | N/A (new-only) | N/A (new-only) |

### M09 · AP-L · 411.43×923.43 — CAPTURED

H: paced expo/fetch reader. Steps: Paced real ZIP chunks: initial bytes/no ETA → minutes → seconds → one second → completed count/no ETA → ready.

13,258,879-byte STORE fixture; stream boundary controlled, production progress UI unchanged.

Checkpoint **36.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d9f2e84ce2ed165/M09-AP-one-second-eta-final.png) | N/A (new-only) | N/A (new-only) |

### M09 · IP-D · 402×874 — CAPTURED

H: paced expo/fetch reader. Steps: Paced real ZIP chunks: initial bytes/no ETA → minutes → seconds → one second → completed count/no ETA → ready.

13,258,879-byte STORE fixture; stream boundary controlled, production progress UI unchanged.

Checkpoint **24.3s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f3d50f19b60154fe/M09-IP-one-second-eta.png) | N/A (new-only) | N/A (new-only) |

### M10 · AP-L · 411.43×923.43 — CAPTURED

D/H: route total zero + paced reader. Steps: sizeBytes=0: 64 KB → 128 KB → EOF → ready; device reduced motion enabled.

Unknown-size track has no ETA. Native motion settings are a capture condition.

Checkpoint **49.3s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3acb98ee896591f7/M10-AP-unknown-final.png) | N/A (new-only) | N/A (new-only) |

### M11 · AP-L · 411.43×923.43 — CAPTURED

N/H: Cancel UI + fetch 503. Steps: Cancel held download → Try again → ready; controlled HTTP 503 → Try again → ready.

Checkpoint **104.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a8defd5c65fe67bf/M11-AP-cancelled.png) | N/A (new-only) | N/A (new-only) |

### M12 · AP-L · 411.43×923.43 — CAPTURED

D. Steps: Registered route sizeBytes=52,428,801 triggers metadata guard.

Visual guard only; no claim of independent local-size/stream boundary verification.

Checkpoint **45.1s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/53455552da4d3700/M12-AP-L.png) | N/A (new-only) | N/A (new-only) |

### M13 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Open real corrupted bad.zip.

Checkpoint **37.1s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7005db5e8b763427/M13-AP-L.png) | N/A (new-only) | N/A (new-only) |

### M14 · AP-L · 411.43×923.43 — PARTIAL

D. Steps: Registered local draft ZIP → header actions → Save whole ZIP → share dismissal → Remove.

Production persisted-local-file/store driver; Save chooser and Remove are captured. Explicit navigation back to the source thread shows remaining attachments/reference text with proof.zip removed. Real picker and actual pending-question caller remain unverified.

Checkpoint **12.3s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-1] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6b03787ba64da210/M14-AP-L-draft-root.png) | N/A (new-only) | N/A (new-only) |

### M14 · IP-D · 402×874 — PARTIAL

D. Steps: Registered local draft ZIP → header actions → Save whole ZIP → share dismissal → Remove.

D uses production persisted local files/draft store. Real file picker and actual pending-question attachment caller are unverified. IP source composer after removal is captured.

Checkpoint **256.4s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-3] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/133f676763786339/M14-IP-D-draft-root.png) | N/A (new-only) | N/A (new-only) |

### M15 · AP-D · 411.43×923.43 — CAPTURED

N. Steps: Open long TS entry → select text → Settings word wrap off/on → reopen → HTML remains source → Back.

Actual SourceFileSurface shows tokens/selectable source without a line-number gutter; no gutter is invented.

Checkpoint **73.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-0] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca01180e6ab4050a/M15-AP-D-unwrapped.png) | N/A (new-only) | N/A (new-only) |

### M16 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Open empty.txt → resolved empty source → Back.

Checkpoint **267.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f6ff5c407ac64e83/M16-AP-L-entry.png) | N/A (new-only) | N/A (new-only) |

### M17 · IP-D · 402×874 — UNVERIFIED

N. Steps: Open partial.txt → attempt scroll.

Accessibility output exposed the partial state, but the visible source body remained blank; rejected diagnostic images do not satisfy readable first-1-MiB preview, tail exclusion, or saved-byte verification.

Recordings and timed steps: linked row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | **Unverified** — Accessibility output exposed the partial state, but the visible source body remained blank; rejected diagnostic images do not satisfy readable first-1-MiB preview, tail exclusion, or saved-byte verification. | N/A (new-only) | N/A (new-only) |

### M18 · IP-D · 402×874 — CAPTURED

N. Steps: Rendered Markdown → File actions → Show source → Show preview → Back.

Captured relative image displays Image unavailable; no workspace-relative fetch is claimed.

Checkpoint **92.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/93f90332a23d43e0/M18-IP-D-entry.png) | N/A (new-only) | N/A (new-only) |

### M19 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Long-name CSV table → source → table; attempted vertical scroll.

Targeted swipe inside the table visibly reveals the rightmost Note column. Vertical gesture remains at edge because this four-row fixture fits the viewport. Initial gestures over empty space are diagnostics.

Checkpoint **149.8s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25d8c0561f813ca4/M19-AP-L-table-final.png) | N/A (new-only) | N/A (new-only) |

### M20 · AP-L · 411.43×923.43 — PARTIAL

N. Steps: Clipped 101×31 CSV → horizontal scroll → source.

Bounded cells/table warning and source captured. App became unresponsive during subsequent large-table work; both-axis interaction and recovery are not fully verified. ANR retained as diagnostic.

Checkpoint **395.8s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/60479e039d2ddbf4/M20-AP-L-horizontal.png) | N/A (new-only) | N/A (new-only) |

### M21 · AP-L · 411.43×923.43 — PARTIAL

N. Steps: Valid WAV → Play → ±15 seconds → Pause → Back; corrupt WAV attempt.

Corrupt WAV remained Loading; required error block/Try again is unverified, loading still rejected.

Checkpoint **212.7s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e04a2596d4b2e7f9/M21-AP-L-paused.png) | N/A (new-only) | N/A (new-only) |

### M22 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Open >10 MiB entry → retained Save/Add → Back.

Checkpoint **243.5s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a87d4880fd1c96d3/M22-AP-L-entry.png) | N/A (new-only) | N/A (new-only) |

### M23 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Open invalid UTF-8 → failure with Save file → Back.

Checkpoint **255.3s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8280550ef30f9ad8/M23-AP-L-entry.png) | N/A (new-only) | N/A (new-only) |

### M36 · AP-L · 411.43×923.43 — PARTIAL

N. Steps: Open partial.csv → combined Partial file + table-limit notices above bounded cells → attempt source.

Combined-warning table is captured and reviewed. Recording shows source-only Partial file warning and CSV source around 00:74.6; the source-labelled still was taken before the update and is rejected. Subsequent AX query failed. Return to table and scroll below both notices are unverified.

Checkpoint **52.8s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb3409d1222a83f2/M36-AP-L-table.png) | N/A (new-only) | N/A (new-only) |

### M37 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Empty CSV table → source → table → Back.

Intentional zero-row table body is blank, with toggle/actions retained; not a loading or empty-ZIP notice.

Checkpoint **171.3s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f5f06889b4f4fae/M37-AP-L-entry.png) | N/A (new-only) | N/A (new-only) |

### M24 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: PNG → native image presentation → zoom → close → reopen.

Checkpoint **28.7s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e3e5eb035668740d/M24-AP-native.png) | N/A (new-only) | N/A (new-only) |

### M25 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Two-page PDF → scroll/page navigation → close → reopen.

Checkpoint **67.1s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/902294b407d1aecf/M25-AP-native.png) | N/A (new-only) | N/A (new-only) |

### M26 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: MP4 → native document/video presentation → playback → return.

AP actual playback is video-only, part-002 00:03–00:14; return to ZIP by about 00:25. Initial onboarding/loading stills were rejected.

Checkpoint **201.1s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/790c166b1a4054a1/M26-AP-L-returned.png) | N/A (new-only) | N/A (new-only) |

### M24 · IP-D · 402×874 — CAPTURED

N. Steps: PNG → native image presentation → zoom → close → reopen.

Checkpoint **127.1s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c4b7ef77f205d474/M24-IP-native.png) | N/A (new-only) | N/A (new-only) |

### M25 · IP-D · 402×874 — CAPTURED

N. Steps: Two-page PDF → scroll/page navigation → close → reopen.

Checkpoint **217.2s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6fdd281008d30716/M25-IP-D-native.png) | N/A (new-only) | N/A (new-only) |

### M26 · IP-D · 402×874 — CAPTURED

N. Steps: MP4 → native document/video presentation → playback → return.

Checkpoint **270.6s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ac14c929cca7791/M26-IP-D-native.png) | N/A (new-only) | N/A (new-only) |

### M27 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Close native image → retained neutral entry → Open in file viewer → close → Back.

Checkpoint **38.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8b5296eba37940cb/M24-AP-closed.png) | N/A (new-only) | N/A (new-only) |

### M28 · AP-L · 411.43×923.43 — CAPTURED

H: openAttachmentInViewer rejects. Steps: unknown.zzz → controlled native rejection → fallback → retry → Back.

Checkpoint **14.3s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d3398a9be8a51307/M28-AP-L-H-native-rejected.png) | N/A (new-only) | N/A (new-only) |

### M29 · IP-D · 402×874 — CAPTURED

D. Steps: Real NewTask local draft without environment/thread → README source → File actions Save only.

Checkpoint **180.6s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73cc46339a2ae1db/M29-IP-D-source.png) | N/A (new-only) | N/A (new-only) |

### M30 · AP-L · 411.43×923.43 — CAPTURED

D. Steps: Registered NewTask remote ZIP with environment, no draft/thread → README preview → source → preview.

Two direct actions, no Add.

Checkpoint **13.6s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/56c94b4945695ed4/M30-AP-L-preview-final.png) | N/A (new-only) | N/A (new-only) |

### M31 · AW-L · AW ≥600px header required — UNVERIFIED

N. Steps: Attempt Pixel 9 landscape rotation.

Orientation failed twice with adb timed out after 1ms; app is portrait locked and no measured ≥600px native header or labelled 640px harness was produced. Portrait M31 diagnostic does not satisfy AW.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | **Unverified** — Orientation failed twice with adb timed out after 1ms; app is portrait locked and no measured ≥600px native header or labelled 640px harness was produced. Portrait M31 diagnostic does not satisfy AW. | N/A (new-only) | N/A (new-only) |

### M32 · AP-L · 411.43×923.43 — PARTIAL

D/H: actual stores; held generated-file persistence. Steps: Add from committed ZIP → busy → success → thread composer attachment/reference; pending Add → close → release, no late append/alert.

Actual pending-question source was pruned by app because no pending provider question existed; real QuestionAttachments-origin routing and unchanged nonempty question draft remain unverified. Saved before/after composer attachment lists matched for cancelled action.

Checkpoint **50.9s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bc2b06cf601d95f5/M32-AP-L-added.png) | N/A (new-only) | N/A (new-only) |

### M33 · AP-L · 411.43×923.43 — CAPTURED

N. Steps: Add zero-byte entry → failure alert → dismiss → Back.

Normal zero-byte failure; no artificial quota failure.

Checkpoint **273.6s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/955e37d4251f2cb1/M33-AP-L-failure.png) | N/A (new-only) | N/A (new-only) |

### M34 · AP-L · 411.43×923.43 — PARTIAL

N/H: Android held share for busy visual. Steps: partial.txt Save → share chooser; cancel/return attempts.

Chooser is visual proof only. Full receiver-exported bytes/hash and restoration to the same readable entry are unverified. AP cache file was measured at 1,048,601 bytes, MD5 8c6a3d7cc7ead96dfef0f7c19f4e6fa3; cache evidence is not a receiver export. AP spinner/chooser is recording-only. IP later native share threw a captured error.

Recordings and timed steps: linked row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | Recording-only chooser; see links above. Still unverified. | N/A (new-only) | N/A (new-only) |

### M34 · IP-D · 402×874 — PARTIAL

N/H: Android held share for busy visual. Steps: partial.txt Save → share chooser; cancel/return attempts.

Chooser is visual proof only. Full receiver-exported bytes/hash and restoration to the same readable entry are unverified. AP cache file was measured at 1,048,601 bytes, MD5 8c6a3d7cc7ead96dfef0f7c19f4e6fa3; cache evidence is not a receiver export. AP spinner/chooser is recording-only. IP later native share threw a captured error.

Checkpoint **42.5s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-4] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/55569449af9b4942/M34-IP-D-share-v2.png) | N/A (new-only) | N/A (new-only) |

### M35 · AP-L · 411.43×923.43 — CAPTURED

H: shareAsync rejection / isAvailable false. Steps: Force native share rejection → Could not save file → dismiss → Back; isAvailable=false → silent return.

False availability does not emit failure alert; that caveat is source-confirmed and observed.

Checkpoint **256.0s**; video/steps in row sheet.

| Before | After | Diff0 | DiffT |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![Shared generic ZIP Before][shared-2] | ![After](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cb1be14ee8668ee7/M35-AP-L-H-thrown.png) | N/A (new-only) | N/A (new-only) |

### R01 · AP-L — CAPTURED

Matched sequence: unavailable asset → Try again → valid empty ZIP.

base: [R01-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4493018a20906b13/R01-AP-base-frozen.mp4)

head: [R01-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad0bd5abae087007/R01-AP-head-frozen.mp4)

Checkpoints: 8.2s command-time: R01-AP-base-frozen-main.png in [R01-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4493018a20906b13/R01-AP-base-frozen.mp4); 12.6s command-time: R01-AP-head-frozen-main.png in [R01-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad0bd5abae087007/R01-AP-head-frozen.mp4)

| Before | After | Diff0 | DiffT >16/255 |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![R01-AP-base-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c2689b4dbfa9f90/R01-AP-base-frozen-main.png) | ![R01-AP-head-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f57c7e634199c77a/R01-AP-head-frozen-main.png) | ![R01-main-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25fae8fa0931c09c/R01-main-diff0.png) | ![R01-main-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b2e2f8a092a05a2d/R01-main-diffT.png) |

R01-main: Diff0 0 pixels (0.00000%); DiffT 0 pixels. No RGB pixel changed in this pair.

### R02 · AP-L — CAPTURED

Matched sequence: ordinary draft code → menu → word wrap → Copy → restore wrap → Back.

base: [R02-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3dac289d57c45e4b/R02-AP-base-frozen.mp4)

head: [R02-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b92515a0024ce071/R02-AP-head-frozen.mp4)

Final base main-screen retake and shared draft baseline: [mobile-AP-base-final-extra.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e750bd68a33a8d62/mobile-AP-base-final-extra.mp4)

Checkpoints: 12.3s command-time: R02-AP-base-frozen-main.png in [mobile-AP-base-final-extra.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e750bd68a33a8d62/mobile-AP-base-final-extra.mp4); 19.5s command-time: R02-AP-head-frozen-main.png in [R02-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b92515a0024ce071/R02-AP-head-frozen.mp4)

| Before | After | Diff0 | DiffT >16/255 |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![R02-AP-base-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d45139cd3713296f/R02-AP-base-frozen-main.png) | ![R02-AP-head-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fa7b8f546c537e63/R02-AP-head-frozen-main.png) | ![R02-main-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3357c29527c3314a/R02-main-diff0.png) | ![R02-main-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ad923e1a8c4b129/R02-main-diffT.png) |

R02-main: Diff0 6646 pixels (0.25387%); DiffT 0 pixels. Changed pixels are disclosed in the diff metrics; inspect the pair and difference sheet.

### R03 · AP-L — CAPTURED

Matched sequence: ordinary HTML (default renderer) → Source → Preview.

base: [R03-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e92964efd658e41a/R03-AP-base-frozen.mp4)

head: [R03-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c7e7d774e34f2a0/R03-AP-head-frozen.mp4)

Checkpoints: 9.2s command-time: R03-AP-base-frozen-main.png in [R03-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e92964efd658e41a/R03-AP-base-frozen.mp4); 10.8s command-time: R03-AP-head-frozen-main.png in [R03-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c7e7d774e34f2a0/R03-AP-head-frozen.mp4)

| Before | After | Diff0 | DiffT >16/255 |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![R03-AP-base-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ab1eabd23065cae/R03-AP-base-frozen-main.png) | ![R03-AP-head-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/566aa6809350118f/R03-AP-head-frozen-main.png) | ![R03-main-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d6d25cfb5472a00d/R03-main-diff0.png) | ![R03-main-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d6b8832c40f96409/R03-main-diffT.png) |

R03-main: Diff0 0 pixels (0.00000%); DiffT 0 pixels. No RGB pixel changed in this pair.

### R04 · AP-L — CAPTURED

Matched sequence: ordinary HTML (htmlRender=1) → Source → Preview.

base: [R04-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/466d997409d5b85c/R04-AP-base-frozen.mp4)

head: [R04-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/303cc9f367617c15/R04-AP-head-frozen.mp4)

Checkpoints: 7.8s command-time: R04-AP-base-frozen-main.png in [R04-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/466d997409d5b85c/R04-AP-base-frozen.mp4); 9.4s command-time: R04-AP-head-frozen-main.png in [R04-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/303cc9f367617c15/R04-AP-head-frozen.mp4)

| Before | After | Diff0 | DiffT >16/255 |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![R04-AP-base-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f596cda49a2c65b0/R04-AP-base-frozen-main.png) | ![R04-AP-head-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99eae2cb2a1a036a/R04-AP-head-frozen-main.png) | ![R04-main-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a9dd72dafa45f856/R04-main-diff0.png) | ![R04-main-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d027f6b06cb542df/R04-main-diffT.png) |

R04-main: Diff0 0 pixels (0.00000%); DiffT 0 pixels. No RGB pixel changed in this pair.

### R05 · AP-L — CAPTURED

Matched sequence: ordinary TAR → menu → manual viewer rejection → dismiss.

base: [R05-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5bc55ab4653c200a/R05-AP-base-frozen.mp4)

head: [R05-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7932ef4505047e71/R05-AP-head-frozen.mp4)

Checkpoints: 11.5s command-time: R05-AP-base-frozen-main.png in [R05-AP-base-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5bc55ab4653c200a/R05-AP-base-frozen.mp4); 10.8s command-time: R05-AP-head-frozen-main.png in [R05-AP-head-frozen.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7932ef4505047e71/R05-AP-head-frozen.mp4)

| Before | After | Diff0 | DiffT >16/255 |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![R05-AP-base-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c9ba484af2f028a/R05-AP-base-frozen-main.png) | ![R05-AP-head-frozen-main.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c92321d9793cb66/R05-AP-head-frozen-main.png) | ![R05-main-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f55756129912aa13/R05-main-diff0.png) | ![R05-main-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/09deaf0d09ac3644/R05-main-diffT.png) |

R05-main: Diff0 0 pixels (0.00000%); DiffT 0 pixels. No RGB pixel changed in this pair.

### R06 · IP-D — PARTIAL

Matched sequence: ordinary DOCX → native Quick Look → close to prior screen.

base: [R06-IP-base-complete.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cb1ac3c8b39ea618/R06-IP-base-complete.mp4)

head: [R06-IP-head-complete.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4ce3471a548ff0b/R06-IP-head-complete.mp4)

Both native open/close sequences are recorded, but the native-viewer pair has a different clock, toolbar blur/title residue and slight document-text vertical offset. That pair is diagnostic and does not establish matched visual parity; a fresh comparable native pair remains unverified after the iOS lease was released. The return pair differs mainly in native clock.

Checkpoints: 51.6s command-time: R06-IP-base-complete-return.png in [R06-IP-base-complete.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cb1ac3c8b39ea618/R06-IP-base-complete.mp4); 72.6s command-time: R06-IP-head-complete-return.png in [R06-IP-head-complete.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4ce3471a548ff0b/R06-IP-head-complete.mp4)

| Before | After | Diff0 | DiffT >16/255 |
| --- | --- | --- | --- |
| [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| ![R06-IP-base-complete-return.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d53dc74a3236e711/R06-IP-base-complete-return.png) | ![R06-IP-head-complete-return.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/955e41c19aa5e1dd/R06-IP-head-complete-return.png) | ![R06-return-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/23e3f934ac698ef3/R06-return-diff0.png) | ![R06-return-diffT.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc64ad39729ee341/R06-return-diffT.png) |

R06-return: Diff0 1241 pixels (0.03925%); DiffT 1035 pixels. Changed pixels are disclosed in the diff metrics; inspect the pair and difference sheet.

**Diagnostic pair; rejected for strict pixel comparability.**

### W01 · WD-L 1280×800 DPR1 — REUSED

Existing exact-revision evidence; Chromium/Playwright 1.60, light, frozen JS Date, reduced motion. This round reuses its coverage declaration and did not re-review web pixels. W01 ZIP worker/source/back; W02 SQLite worker/WASM; W03 Office worker/directory guard. W03 also retains the original W18 refusal/recovery evidence. Warmed-Vite traces are not production transfer evidence.

Recording sequence W19-tree.zip-1280-light. Steps/timestamps are written before the pair:

Before — seconds from video creation, startup included: 14.140s Cold context/cache: first open tree.zip; 17.101s Settled still: tree.zip-cold

After — seconds from video creation, startup included: 12.012s Cold context/cache: first open tree.zip; 14.614s Settled still: tree.zip-cold



| Before recording | After recording |

| --- | --- |

| [W19-tree.zip-1280-light-base.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/329bfaae1ac111b0/W19-tree.zip-1280-light-base.webm) | [W19-tree.zip-1280-light-head.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c1bee67993d47e6/W19-tree.zip-1280-light-head.webm) |



| State / viewport / theme | Before | After | Diff0 | DiffT 16/255 |
| --- | --- | --- | --- | --- |
| Revision | [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| tree.zip-cold · 1280×800 · light | ![W01-1280-light-root-base.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/31d4030e797d9f85/W01-1280-light-root-base.png)<br>SHA-256 `d492b144fd24a07ccc87edf057f6e07c812a06179123969299d30ad089aeca1b` | ![W01-1280-light-root-base.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/31d4030e797d9f85/W01-1280-light-root-base.png)<br>SHA-256 `d492b144fd24a07ccc87edf057f6e07c812a06179123969299d30ad089aeca1b` | ![W01-1280-light-root-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37055769a21df047/W01-1280-light-root-diff0.png)<br>SHA-256 `05713dbacb00cfa92e8cad1581147b0f1349f6ee14c97d122440aff36011bd53` | ![W01-1280-light-root-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37055769a21df047/W01-1280-light-root-diff0.png)<br>SHA-256 `05713dbacb00cfa92e8cad1581147b0f1349f6ee14c97d122440aff36011bd53` |

### W02 · WD-L 1280×800 DPR1 — REUSED

Existing exact-revision evidence; Chromium/Playwright 1.60, light, frozen JS Date, reduced motion. This round reuses its coverage declaration and did not re-review web pixels. W01 ZIP worker/source/back; W02 SQLite worker/WASM; W03 Office worker/directory guard. W03 also retains the original W18 refusal/recovery evidence. Warmed-Vite traces are not production transfer evidence.

Recording sequence W19-smoke.sqlite-1280-light. Steps/timestamps are written before the pair:

Before — seconds from video creation, startup included: 21.441s Cold context/cache: first open smoke.sqlite; 23.941s Settled still: smoke.sqlite-cold

After — seconds from video creation, startup included: 12.467s Cold context/cache: first open smoke.sqlite; 15.042s Settled still: smoke.sqlite-cold



| Before recording | After recording |

| --- | --- |

| [W19-smoke.sqlite-1280-light-base.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0f53d120bb403de0/W19-smoke.sqlite-1280-light-base.webm) | [W19-smoke.sqlite-1280-light-head.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/03418aa10f3fc568/W19-smoke.sqlite-1280-light-head.webm) |



| State / viewport / theme | Before | After | Diff0 | DiffT 16/255 |
| --- | --- | --- | --- | --- |
| Revision | [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| smoke.sqlite-cold · 1280×800 · light | ![W19-1280-light-smoke.sqlite-cold-base.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bc0e68a5a1ac97e6/W19-1280-light-smoke.sqlite-cold-base.png)<br>SHA-256 `4da1bc02f318c35c35fe8961b5bf5158c71d858985d2c57fb4e910a30064f5bb` | ![W19-1280-light-smoke.sqlite-cold-head.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0185fad0b973d88a/W19-1280-light-smoke.sqlite-cold-head.png)<br>SHA-256 `4da1bc02f318c35c35fe8961b5bf5158c71d858985d2c57fb4e910a30064f5bb` | ![W01-1280-light-root-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37055769a21df047/W01-1280-light-root-diff0.png)<br>SHA-256 `05713dbacb00cfa92e8cad1581147b0f1349f6ee14c97d122440aff36011bd53` | ![W01-1280-light-root-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37055769a21df047/W01-1280-light-root-diff0.png)<br>SHA-256 `05713dbacb00cfa92e8cad1581147b0f1349f6ee14c97d122440aff36011bd53` |

### W03 · WD-L 1280×800 DPR1 — REUSED

Existing exact-revision evidence; Chromium/Playwright 1.60, light, frozen JS Date, reduced motion. This round reuses its coverage declaration and did not re-review web pixels. W01 ZIP worker/source/back; W02 SQLite worker/WASM; W03 Office worker/directory guard. W03 also retains the original W18 refusal/recovery evidence. Warmed-Vite traces are not production transfer evidence.

Recording sequence W19-valid-smoke.docx-1280-light. Steps/timestamps are written before the pair:

Before — seconds from video creation, startup included: 15.417s Cold context/cache: first open valid-smoke.docx; 20.671s Settled still: valid-smoke.docx-cold

After — seconds from video creation, startup included: 14.004s Cold context/cache: first open valid-smoke.docx; 18.376s Settled still: valid-smoke.docx-cold



| Before recording | After recording |

| --- | --- |

| [W19-valid-smoke.docx-1280-light-base.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f7b3ea3bcec71d81/W19-valid-smoke.docx-1280-light-base.webm) | [W19-valid-smoke.docx-1280-light-head.webm](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c2d9cff2b7132a37/W19-valid-smoke.docx-1280-light-head.webm) |





| State / viewport / theme | Before | After | Diff0 | DiffT 16/255 |
| --- | --- | --- | --- | --- |
| Revision | [f3b058cd6a][before] | [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] | [f3b058cd6a][before] → [420bc45432][after] |
| valid-smoke.docx-cold · 1280×800 · light | ![W19-1280-light-valid-smoke.docx-cold-base.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1488ca3c96e60ca/W19-1280-light-valid-smoke.docx-cold-base.png)<br>SHA-256 `d554ead6aaa4d7f1a8ac1a2b38e6eee6c54d6bbef38a7f23befb9641f8dec52a` | ![W19-1280-light-valid-smoke.docx-cold-head.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/64397f0914e53eb5/W19-1280-light-valid-smoke.docx-cold-head.png)<br>SHA-256 `d554ead6aaa4d7f1a8ac1a2b38e6eee6c54d6bbef38a7f23befb9641f8dec52a` | ![W01-1280-light-root-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37055769a21df047/W01-1280-light-root-diff0.png)<br>SHA-256 `05713dbacb00cfa92e8cad1581147b0f1349f6ee14c97d122440aff36011bd53` | ![W01-1280-light-root-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37055769a21df047/W01-1280-light-root-diff0.png)<br>SHA-256 `05713dbacb00cfa92e8cad1581147b0f1349f6ee14c97d122440aff36011bd53` |

### Unverified rows and conditions

- M06 AP-L: Query, keyboard, descendant matching and preserved return are visible. Final keyboard-dismiss command failed; final whitespace clear-icon activation was not completed. M07 separately records the empty-state Clear filter button.
- M14 AP-L: Production persisted-local-file/store driver; Save chooser and Remove are captured. Explicit navigation back to the source thread shows remaining attachments/reference text with proof.zip removed. Real picker and actual pending-question caller remain unverified.
- M14 IP-D: D uses production persisted local files/draft store. Real file picker and actual pending-question attachment caller are unverified. IP source composer after removal is captured.
- M17 IP-D: Accessibility output exposed the partial state, but the visible source body remained blank; rejected diagnostic images do not satisfy readable first-1-MiB preview, tail exclusion, or saved-byte verification.
- M20 AP-L: Bounded cells/table warning and source captured. App became unresponsive during subsequent large-table work; both-axis interaction and recovery are not fully verified. ANR retained as diagnostic.
- M21 AP-L: Corrupt WAV remained Loading; required error block/Try again is unverified, loading still rejected.
- M31 AW-L: Orientation failed twice with adb timed out after 1ms; app is portrait locked and no measured ≥600px native header or labelled 640px harness was produced. Portrait M31 diagnostic does not satisfy AW.
- M32 AP-L: Actual pending-question source was pruned by app because no pending provider question existed; real QuestionAttachments-origin routing and unchanged nonempty question draft remain unverified. Saved before/after composer attachment lists matched for cancelled action.
- M34 AP-L: Chooser is visual proof only. Full receiver-exported bytes/hash and restoration to the same readable entry are unverified. AP cache file was measured at 1,048,601 bytes, MD5 8c6a3d7cc7ead96dfef0f7c19f4e6fa3; cache evidence is not a receiver export. AP spinner/chooser is recording-only. IP later native share threw a captured error.
- M34 IP-D: Chooser is visual proof only. Full receiver-exported bytes/hash and restoration to the same readable entry are unverified. AP cache file was measured at 1,048,601 bytes, MD5 8c6a3d7cc7ead96dfef0f7c19f4e6fa3; cache evidence is not a receiver export. AP spinner/chooser is recording-only. IP later native share threw a captured error.
- M36 AP-L: Combined-warning table is captured and reviewed. Recording shows source-only Partial file warning and CSV source around 00:74.6; the source-labelled still was taken before the update and is rejected. Subsequent AX query failed. Return to table and scroll below both notices are unverified.
- R06 IP-D: native Quick Look pair rejected for different clock, toolbar blur/title residue and slight document-text offset; fresh comparable pair unverified after lease release.

Global conditions: iOS frozen native clock/reduced-motion parity and independent native network-idle/font-ready assertions were not established. A row with a partial sequence is not promoted to full coverage by a still. No claim is made for any unlisted checkpoint in those rows.

### Reproduction and artifact index

[raw-frames-and-sanitized-logs.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e66d6ff29807bd2/raw-frames-and-sanitized-logs.zip) · [asset-manifest.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04cf0f4d301c96b8/asset-manifest.json) · [cleanup.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/13466c1e3258f7fd/cleanup.json)

[synthetic-drivers-and-fixtures.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dc8567737483b8ee/synthetic-drivers-and-fixtures.zip)

[capture-replay.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19f047704da1125d/capture-replay.md) · [chapters.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c4c2b723e6ad454/chapters.md) · [actions-sanitized.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa60b6ef0a1c1543/actions-sanitized.jsonl) · [diff-metrics.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ce1a9d94ee94435e/diff-metrics.json)

[generate-matrix.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b11523a4d44fcdf/generate-matrix.py)

[revise-partial.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b33d504fd37f97d/revise-partial.py)

[seed-matrix.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/336119b3c465af42/seed-matrix.mjs)

[seed-revised.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/95fbd8f0d6ea83f1/seed-revised.mjs)

[seed-caller-thread.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19ea971f6c8daec8/seed-caller-thread.mjs)

[local-seed.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fa0f070bf738aa23/local-seed.py)

[drive.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a298fd9078d8bfd0/drive.py)

[draft-route.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/125376896dc1b99d/draft-route.py)

[harness-fetch.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e352d92f29e2b67a/harness-fetch.js)

[harness-actions.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a68a1e772d34f15a/harness-actions.js)

[frozen-regressions.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/61d0ee9fe16dcec0/frozen-regressions.py)

[reg-complete.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ba879fc68a4a250a/reg-complete.py)

[diff-pairs.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5a6820cfacad1014/diff-pairs.py)

FRICTION:

- tool | Android pool/AX transient failures, orientation adb 1ms timeout twice, screenrecord ownership error; iOS normalized battery never settled | stable native service deadlines and status normalization
- tool | AX snapshots contained covered/underlying controls; selecting last uncovered match fixed navigation driver | native modal-aware selectors
- tool | lazy Metro bundling sharing module reloaded JS and removed harness globals; ghdrop transport failed once | prewarm native module bundle; retry upload once
- model | two CSV stills were provisionally uploaded before visual review; both were then inspected, validated and reuploaded as reviewed aliases used in the tables | enforce review before the upload queue
- other | iOS partial body blank, corrupt WAV loading, large/partial CSV unresponsive; no matching prechange reproduction | retain diagnostic states and leave missing sequence unverified

Work: gpt-6.1-sol, Codex harness.

[before]: https://github.com/pingdotgg/t3code/commit/f3b058cd6a737e51894bc265927560b23742f0f0
[after]: https://github.com/pingdotgg/t3code/commit/420bc45432a7560a11dc4d0b710cd4155f716c0f

[shared-0]: https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e3fc60212665cd4/baseline-AP-base-D.png
[shared-1]: https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84e9bf8522d24ec4/baseline-AP-base-L-draft.png
[shared-2]: https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7d2fbe571bc93133/baseline-AP-base-L.png
[shared-3]: https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cb206e96196b8160/baseline-IP-base-D-draft-chat.png
[shared-4]: https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1584ba64a6ae198f/baseline-IP-base-D.png
