Proof audit pass 2 for [#33347](https://git.cafe/pingdotgg/t3code/pull/33347), head [9e73e3c088](https://git.cafe/pingdotgg/t3code/commit/9e73e3c0886dd12acc8bc79852dec548f7808edf), merge-base [d1aeed2492](https://git.cafe/pingdotgg/t3code/commit/d1aeed249288585390dbac4fde5b54c35bd5fc06).

Findings: no blocking proof defect. The new controlled F02/F03/F06 and combined P11/P12/P14 comparisons resolve the noisy visual comparisons from pass 1. Historical captures remain functional evidence only. Deliberately blank TSV app surfaces, trailing contact-sheet padding, and transient reload/fetch spinners in recordings are intentional states, not failed settled captures. No unexpected duplicated row, stale overlay, ghosting, missing output or viewport/theme discrepancy was found in the acceptance captures.

I downloaded and visually inspected the linked stills, differences, original recordings via decoded frame sequences, and supplementary inventory assets. I checked full-resolution milestones for the new disclosure, narrow scrolling, Android reopen, inherited history, and detail-state recordings. P09's printed times are host command completion times; the 16.50-second encoded clip itself shows open, close and reopen, with Notice/view/count/home42 visible again at its end. I did not interpret 17.12 as a video timestamp. F06 reaches step-48, moves the outer feed and restores the inner output to the start. F02 reverses row, integration group and outer fold. P22 opens, closes and reopens inherited JSON while retaining the table.

All eight delivered controlled differences were regenerated: F02/F03/F06/Payload-final Diff0 (absolute difference multiplied by 16) and DiffT (5%, 12.75/255). Each regenerated file has zero differing pixels against its delivered counterpart. Changed regions match the stated row insertion and subsequent reflow. F03's faint composer-backdrop change is disclosed and below 5%.

Independent rebuild: detached second checkout at head, vp install, fresh synthetic isolated home, T3CODE_DEV_SEED=0, uploaded seed.mjs/app-html.mjs/setup-browser.js. Same environment: Chromium 157/Linux, no emulation, 1440x1000 CSS, DPR2, root16px, light, reduced motion, fixed 2026-11-10T08:01Z clock, loaded fonts, same disclosure state and pointer outside the content. Full screenshot is 2880x2000. Delivered F03-after versus my rebuild: AE=0/5,760,000 pixels, maximum channel delta=0. A second settled rebuild also has AE=0. No anti-aliasing or geometry discrepancy.

![Independent F03 rebuild at head](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/80b41ffa10dfdc2a/rebuild-F03.png)

[Zero-difference image](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f93a04a1db6d60b/rebuild-diff0.png), [all eight diff checks](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f32cdd365ef0961/diff-verification.json).

| Row | Status | Basis |
|---|---|---|
| F01 | SUFFICIENT, control | Closed-fold card retained; historical elapsed/hover noise disclosed. Open-row proof is F02/F03. |
| F02 | SUFFICIENT | Controlled wide dark pair, both correct differences; recording reverses row/group/fold. |
| F03 | SUFFICIENT | Controlled light JSON/table pair; independent head rebuild pixel-identical. Common reversal is F02. |
| F04 | SUFFICIENT, assertions | Ordinary/invalid/mismatched references and html_render gates are parser/projection controls; no new visual matrix needed. |
| F06 | SUFFICIENT | Narrow dark long label/query, wrapping and step-48 output; inner and outer scrolling visible. |
| F07 | SUFFICIENT | Existing lifecycle recordings establish running/completed/settled behavior without claiming deterministic time comparison. |
| F08 | SUFFICIENT | Existing native live pair establishes interleaved activities/cards and native omission baseline. |
| P09 | SUFFICIENT | Old long-output/JSON clips plus new successful Android TSV close/reopen. |
| P10 | SUFFICIENT | iOS long-output scroll and row/fold reversals visible. |
| P11 | SUFFICIENT | Controlled combined web pair plus native direct-row No output and retained card. |
| P12 | SUFFICIENT | Controlled mixed web pair; native light bottom still shows JSON and [image], table retained. |
| P13 | SUFFICIENT for diff | Web harness accurately labeled; native loading/error/unavailable branches unchanged. Uncaptured native faults are not claimed tested. |
| P14 | SUFFICIENT | Controlled combined failed web pair plus native failure tone and deferred text. |
| P15 | SUFFICIENT for diff | Web reload and native persisted-thread reconstruction shown; no native persistence change. True native cold relaunch remains uncaptured. |
| P16 | SUFFICIENT | Existing actual web Settings cycle shows filtering, retained cards and restoration. |
| P17 | SUFFICIENT, harness | Real GuestPage and guest detail source, explicitly stubbed transport; no live Connect claim. |
| P18 | SUFFICIENT | Identical raw Codex adapter ingest before/after for {} and [] x app/ordinary; latest-head log fixes both ordinary cases. |
| P19 | SUFFICIENT | Actual detail RPC shows oversized valid app envelope retained, text/metadata preserved and image data absent; after renderer shows text/marker. |
| P20 | SUFFICIENT | Detail RPC covers small image 68 decoded bytes retained, large image removed, invalid ref generic bounded, nonimage oversize bounded. |
| P21 | SUFFICIENT | Production mobile cached/fresh script rerun at head: update/remove/replace/append equal, unchanged sibling card identity reused; web regression test passes. |
| P22 | SUFFICIENT | Genuine thread.fork driver plus inherited JSON/table disclosure recording; source identity preserved. |
| P24 | SUFFICIENT for diff | Settings/navigation code unchanged; independent production native presentation cycle at head retains two cards and filters activities 2/1/0/0/2. No actual native navigation cycle is claimed. |
| C-HOST | SUFFICIENT, control | Existing web/native table and blank-card retention; stable sibling identity assertion. No host/platform/origin/RPC-schema change. |

Native omissions: apps/mobile/src/lib/threadActivity.ts is the only changed native production file. Its changes project the activity before the card and store multiple entries per row. apps/mobile/src/features/threads/thread-work-log.tsx:940-980 retains exactly the same detail success/error/unavailable/loading selection; formatter tests and native successful/empty/mixed/failed captures cover the changed result inputs. Persistence, native launch and settings navigation are untouched. deriveThreadFeedPresentation at threadActivity.ts:1494 and its visibility filter at 1549 are untouched; only activity groups are filtered, not mcp-app entries. I independently exercised this same function with completed and failed app rows through showAll/hideSuccessful/hideAll/zen/showAll, using its presentation cache. Cards stay 2; activities are 2,1,0,0,2. Thus P13/P15/P24 do not require new native recordings to establish this diff, although those integration flows remain unverified.

[Native presentation driver](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/81a8d6e0787e9cb3/native-presentation-audit.mjs), [native presentation transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2b77ac2a788fd5fc/native-presentation-audit.log), [cached mutation replay at head](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19f9331fcbd10911/cache-audit.log).

SHA applicability: git diff 697288fc8e..9e73e3c088 contains only packages/shared/src/toolOutput.ts and its test, making empty structuredContent arrays absent. F02/F03/F06/combined payload fixtures have no empty-array structuredContent, so the prior render captures apply. Latest P18 transcript explicitly covers the changed ingest case. My head F03 rebuild confirms this on actual rendering.

Independent focused verification: session-logic, threadActivity, itemDetail, toolOutput, WireProjection suites: 146 tests / 5 files passed. [Transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bcd1d3d4091e8502/tests.log). Latest cafe status reports 34 successful checks, zero pending/failing, at the audited head; Macroscope approval was observed. Forge conflict freshness is separate from this proof verdict. No PR edit, push or comment; lead checkout clean.

Cleanup: owned browser tab closed; owned dev-runner stopped through its captured session, ports7243/15283 confirmed closed. No emulator or lease started. Audit proof uploaded before removing owned scratch/worktree; runtime logs uploaded with transient pairing credentials redacted. No private runtime model identifiers uploaded.

FRICTION:
tool | Python urllib returned HTTP403 for public evidence assets; curl fetched the same immutable URLs successfully. | Use curl for these artifact downloads.

VERDICT: SUFFICIENT
