# Evidence-only proof audit — pass 1

Reviewed [#23210](https://github.com/pingdotgg/t3code/pull/23210) / [#23209](https://git.cafe/pingdotgg/t3code/pulls/23209), branch `fix/issue-13706`, head [c81e17ac40](https://git.cafe/pingdotgg/t3code/commit/c81e17ac400c3e6c52503906cd69b2e0ee077b5d), actual observed base [8acbefefc5](https://git.cafe/pingdotgg/t3code/commit/8acbefefc51b4d281dcd04108c82baa1ab902b0e). Worktree `/home/ubuntu/wt/pr-23210` was present, clean and at the requested head. Read full six-file diff against that base and relevant installed dependency/callers. No implementation, capture, browser, server, test execution, comment, review, merge, watch, fetch, checkout or cleanup. This is a proof plan and provenance audit, not a merge verdict. Only temporary evidence files and the requested public matrix upload are written.

## Evidence consulted

- [Prior matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e63c41ce9c40038/13706-matrix.md).
- [Prior independent pass-2 audit](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2dbaf3e65b7d1f20/13706-proof-audit-2.md).
- [Complete artifact index](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4f8ccbd998388538/v2-index-final.md), [report](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/00bfebfdb8b99a85/v2-evidence-report.md), [final manifest](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/722f23dc75506c36/v2-environment-manifest-final.json).
- [Historical independent pixel metrics](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8919ec011718baea/13706-proof-rebuild-pixels.json): threshold0=0, threshold8=0, max channel delta0, 1280×800 export. This pass fetched/read that result; it did not perform another rebuild or independently inspect every video frame.
- User's present brief supersedes the prior broad matrix: plain mobile is verified by EAS iOS static fixture; no artificial Android/iOS split, no invented Electron surface. The supplied old index/report do not link that newer EAS artifact. Accept that verification as user-supplied status; attach its URL, runtime SHA and bundle hash before advertising independent native provenance. No separate external proof-audit brief was supplied/found; current brief and linked prior matrix/audit define this pass.

## Final-diff derivation and integration delta

Production delta is precisely `targetId !== null` before positive-viewPosition target-size correction in `prepareMVCP`, in six 3.3.5 bundles. Lock changes only that patch hash; fixture/materializer/test/Knip entries are supporting tooling. No changed application, transport, provider, shell or platform-specific implementation. Four new regression cases invoke extracted real functions for React/native CJS/ESM with `dataChanged=true`; they assert total size, not final animation landing. RN-web pair is not in those cases. Reported 14/14 is not a test rerun by this auditor.

Compared the whole per-file patch sections at historical [e84990bae5](https://git.cafe/pingdotgg/t3code/commit/e84990bae57049749dc7ddb0835e15452eb336ab) and current head: `react.js`, `react.mjs`, `react-native.web.js`, `react-native.web.mjs` sections are **byte-identical**. Native JS/MJS sections differ: upstream added native MVCP/maintain-end/viewport-layout/anchored-end behavior. The aggregate patch hash changing does not imply all bundle bytes changed.

Canonical fixture SHA256 is unchanged: `d3153cb5e491fbce893a1180dcba4bf9f595f04b84003c5dd7ed66437958c1a4`. Installed current `react.mjs` SHA256 is `5f493ab687559b25747ecf3f294008e815e35fc918ac86e20f2271a908ae302f`, exactly the historical manifest's after-bundle hash. Materializer change is console.log→stdout only. Relevant web timeline/follow/nested files have no historical-to-current change. Current patch SHA256: `b944d63e8608bc5fc83a50363ebb85a65df74a27cba6a7562e434346d5350ba6`.

Thus historical A1 remains sufficient proof of this exact web dependency algorithm and fixture. It remains historical evidence; it cannot be relabeled a current-head run. One current rebuilt capture with pixel comparison belongs in separately delegated pass 2. There is no source-derived need to recapture all four old web A1 pairs solely because the aggregate patch hash changed. Native historical evidence needs a post-integration bundle identity check or recapture because its runtime changed.

## Minimum final-diff matrix

`MISSING` is an actionable proof obligation, not an established defect. Shared logic branches collapse across themes, providers and platforms. A representative wide/light dependency run suffices for algorithm controls; reuse historical narrow/dark A1 geometry instead of repeating the entire grid. Interaction proof needs recordings plus traces; a final still alone cannot establish no transient jump.

| ID / prior mapping | Runtime branch or caller | Minimum proof and acceptance | Existing sufficiency / action |
|---|---|---|---|
| R1 / A1 | React dependency: active positive-position target invalidated by data shrink | Exact committed 150×900/estimate90 fixture, offset5000, animated end, remove final row while target149/viewPosition1 active; record mutation and stable total134100, visible Row148, end-distance≤1px, no total90/reset. Preserve requested and actual timing. | SUFFICIENT historical four width/theme pairs and prior independent rebuild. Fixture and current React ESM bytes match. Reuse ready/settled images, traces, videos and metrics with actual SHAs. Current single rebuilt capture/pixel comparison is PASS-2 PENDING, not four recaptures. |
| R2 / A2 | Null target on actual size-only `prepareMVCP(false)` with size enabled | Direct focused invocation proving callback selected and no invalid-target measurement/total corruption; size-only lifecycle recording only if naturally reachable. | MISSING. Prior data=false,size=true shrink does not establish invocation; do not demand fabricated visual reachability. Can close with execution-level diagnostic proof, no product capture necessary. |
| R3 / C1 | Surviving positive-position target changes measured size | Retain key149; resize actual last row during active scroll; observe new measured size and matching final total/end. Avoid a second public sizing timer fighting DOM measurement. Record before/after control once. | MISSING. Prior pair's 135100→135000 and extra setItemSize timer are inconclusive. New clean control required; this is not an integration recapture of previously sufficient proof. |
| R4 / C2 | Guard bypass: MVCP off, position0, no active target; data/size gate selection; pending end before target | Reuse prior fresh-page disabled/position0/nonanimated clips as historical partial controls. Direct diagnostics can establish data-only/size-only gate selection and pending-target early return. No need for an entire visual grid per gate. | PARTIAL. Complete selected-branch evidence missing. No mandate to recapture sufficient historical controls when bundle/fixture identity holds; fresh current diagnostic trace may close remaining paths. |
| W1 / P1+P2 | Real web `ChatView→MessagesTimeline→useTimelineFollow`, positive end scroll while rows change/coalesce | One deterministic long product thread: history→jump latest; representative streaming/finalization shrink, record actual row keys, active target, MVCP and settled end. Include short/underflow end geometry as a labeled phase. If null target cannot be reached, disclose negative integration smoke and leave positive fix proof at R1. | MISSING completed, provenance-backed product flow. Existing real-Claude/CPU-stall reports and 0.5px endpoint are smoke only; pending-send clip is insufficient for completed flow. No per-provider or four-pair replay requirement from this diff. |
| W2 / P3 | Real web unaffected navigation gates | One clip with remembered-middle restoration and find/citation positioning, plus reduced-motion/nonanimated end; verify intended row/anchor and no drift. Short/empty may share W1. | MISSING integrated controls. Restores use offset or viewPosition0; find/citation disable MVCP, so these are bypass controls, not additional positive races. |
| W3 / P4 | Web nested `TimelineWorkGroupRows` | One overflowing group; append/replace/remove final entry during follow, collapse/reopen retained position; record nested extent/visible entry and stable scroll. | MISSING. Distinct small viewport, expansion and nonanimated maintain-end justify one representative integrated control; no native counterpart required beyond N1 in this narrowed brief. |
| W4 / U1 | Web ancillary distinct scroll API | Representative branch filter/reset-offset and command-palette keyboard `scrollIndexIntoView` (DOM nearest fallback); filter to shorten results, select, reopen. Correct visible selection and offset; one combined clip. | MISSING. Do not repeat every font/model/PR catalog. BranchPicker explicitly resets offset0; palette nearest/index path needs representative behavior, not an invented positive-end race. |
| B1 | Six patched bundle entry points | Executed size-invariant/guard control for all six actual installed files, record file hashes and selected entry; React/native four reported cases cover data branch only. RN-web browser resolution is package-export evidence, not native mobile proof. | PARTIAL: reported four cases; no direct RN-web JS/MJS case. Close through read-only execution diagnostic or existing sufficient test artifact; no six separate UI captures. |
| N1 | Plain native mobile dependency runtime | One EAS iOS static fixture for active-target shrink and coherent final geometry; record native bundle identity and actual runtime revision. No full app keyboard/provider/Android matrix without changed platform code. | VERIFIED per explicit user brief. Artifact URL/SHA absent from fetched old index. No repeat if it used integrated native bundle; if pre-integration, recapture this one fixture against current native bundle. Native bundle bytes changed, unlike React. |

## Precisely what integration requires

1. **Web A1:** retain historical four-pair proof. Required later independent pass 2: rebuild one affected current capture, preferably 1440×900 light with identical browser/font/DPR/export settings; compare against historical accepted after still at threshold0 and threshold8, publish raw diff and counts. Source/hash identity makes this a current-environment confirmation, not a reason to discard historical proof.
2. **Native:** obtain EAS static fixture URL and runtime/bundle SHA. If post-[02a225fbc5](https://git.cafe/pingdotgg/t3code/commit/02a225fbc522a0cba4e13a0d0aa2a3386e5ab3e1) with current native bytes, reuse; if older, recapture only N1 against integrated native bundle. Do not recapture Android separately.
3. **Remaining web rows R2–R4/W1–W4/B1:** missing or partial from the outset; they are completion work, not fallout requiring rerunning the sufficient A1 grid. Branch diagnostics can close nonvisual gates. The minimum integrated web captures are W1–W4, combinable where one recording exposes all labeled states, plus clean dependency resize R3.
4. A current paired causal comparison should use observed base (newer upstream patch without six guards) vs current head, identical fixture and environment. Historical before is sufficient history but must not be mislabeled that current base. If using historical before with current after, disclose unequal native patch/background revisions and exact matching React bundle provenance.

For each new recording keep actual commit, installed bundle and fixture hashes, browser/OS, CSS viewport vs raster dimensions, DPR, font, theme, reduced-motion/zoom, timing and semantic phases. Stable means no active target and matching DOM/internal scroll across ≥3 frames and ≥200ms, plus later layout confirmation. Pixel equality does not replace geometry acceptance. If pixels differ, identify the cause rather than increase threshold silently. Do not upload real private transcript data.

## Scope reductions from prior matrix

Prior D1 is removed: no shell/IPC/platform delta makes a distinct desktop obligation necessary here; web evidence remains labeled web. Prior N1 keyboard/insets/native product flows are reduced to the user-authorized plain EAS fixture, with a single native runtime row. P1/P2 collapse to one representative completed web integration; no separate Claude short/long/CPU Cartesian grid. P3 stays one bypass-control flow; P4 stays one nested-list flow; U1 collapses by scroll API. Theme is not a guard branch. Existing narrow/dark A1 captures remain useful geometry proof. No new remote/relay/provider/scheduler matrix: no changed contracts or services.

## FRICTION

FRICTION fetch: Python urllib returned HTTP403 on public ghdrop artifacts; curl fetched the same URLs successfully. All consulted documents saved outside worktree.

FRICTION provenance: The original body says all recordings predate the newer patch; per-bundle comparison shows React/RN-web patch sections unchanged and actual React ESM hash identical. Use bundle-level provenance instead of invalidating all evidence by aggregate patch hash.

FRICTION native: EAS iOS verification is supplied by the user but absent from historical index; link its artifact and bundle revision. Do not turn that missing index reference into an invented Android gap.

FRICTION prior scope: Old matrix required broad product/native/shell grids beyond changed behavior. This pass records explicit reductions and retains branch/caller obligations, without calling old missing rows passed.

FRICTION tooling: Initial wildcard caller-path guesses did not exist; exact rg-listed paths resolved them. No repository mutation occurred.

FRICTION deferred: No captures in pass 1. Later independently delegated pass 2 must rebuild one affected capture and perform its own pixel comparison; historical pass-2 metrics do not satisfy that future instruction.
