# Proof freshness audit — PASS

Read-only audit of [#24263](https://git.cafe/pingdotgg/t3code/pulls/24263), branch `t3/mobile-audit-markdown-20261023`. Scoped host proof passes; no concrete blocker found. This is not CI or native release validation.

Pinned base [8f26ed7](https://git.cafe/pingdotgg/t3code/commit/8f26ed7e279d6d290ab7200e88055b7a58982b7d) → head [4cd5524](https://git.cafe/pingdotgg/t3code/commit/4cd55246672e1090c710dbb7ded76be1ea34a554). The target checkout remained clean at the exact requested head. No fetch, edits, push, comments, merge, upload, server, browser, device, emulator, remote machine, userdata access or subdelegation. All writes are in this scratch directory. T3 PR registration was the only app operation.

## Fresh results

- **30/30 focused tests**, three files: inline file links, table breaks, HTML. See focused-tests.log.
- **40,225 output comparisons, zero differences**: 4,574 capture/prefix comparisons + 6,176 exhaustive fixture prefixes + 29,475 generated combined/file-only/table-only comparisons. Actual requested base and head modules were loaded, not historical endpoint substitutes. Full fixture families and boundaries are in fixture-matrix.csv/json and the raw JSON results.
- Mixed growing stream: **27 updates**, 1024 UTF-16 units/update, virtual 50 ms cadence with no waits; final 27,100 input bytes and maximum 29,100 output bytes. **81 → 54 parse entries**. Fresh median aggregate preprocessing wall time **2811.230 → 1543.715 ms** (2 warmups, 5 retained samples per endpoint). This supersedes historical 2896.152 → 1632.552 ms. Current baseline uses lastIndexOf; head uses a bounded backward table-line scan. Samples were captured on a shared Linux x64 VM with v24.22.1; host observations are not device performance guarantees. No speed threshold asserted.
- Streaming logical stage traffic: **1,555,548 → 1,138,401 UTF-8 bytes**. Parser-input traffic: **1,136,958 → 719,811 bytes**. Before stages=input/HTML/file links/output; after=input/normalization parser input/output. Equal contents at separate stages count separately. These are logical string traffic counts, **not peak/live heap, AST, RSS, allocator, GC or native memory**. See stream-stage-results.json for every update and its output hash.
- Portable cache fresh recapture confirms the prior audit totals: **269,254,656 → 8,388,416 accounted bytes**, **512 → 8 entries**. Key/entry structs 280/296 bytes. The six string sizes, two key copies and structs are counted; allocator, buckets/nodes, capacity, callers and rendering state are excluded. Actual extracted C++ cache/key/hash bodies, CGFloat=double, private fields exposed, unrelated React prop helpers omitted; current native cache assertions execute only in the after harness. Linux C++20/O2, 2 warmups/8 retained samples; timing includes introspection. Host medians 299.983 → 196.071 ms are noisy supplementary observations. No Objective-C/Foundation execution claimed.
- Coordinator identity permits reuse of the **HOST MODEL**. An additional replay preserves **134,479,872 → 524,288 modeled captured source bytes**, with revision 512 applied. Pending/inflight invalidation and main-queue starvation cases retained. **There is no global two-revision memory bound**: completed apply captures can accumulate on a stalled main queue. Model times do not measure native scheduling/render latency.

## Identity and provenance

All **1,043 archived SHA256SUMS entries** passed; all 15 archived source-manifest entries were checked against Git objects and archived files. Current source hashes are independently verified in identity-results.json and second-pass-results.json.

- Requested base module SHA-256: `aea718c5f90e0222fe0421a9002ad603f8c20381c9237dcc1a367812d0ba2494`.
- Requested head module SHA-256: `99068ed15826f4a2da0c2154e9baffdc84f590cffba6225a65fb6c8eb01fd5de`.
- t3.16 archive SHA-256: `2cbace50e25ac5ba20d839043b5c3e05e90cab36317522d22a9c1e6d8eb95b05`; identical at base/head.
- Patch SHA-256: `6211031776a487f3a0b1242420a47e1336c8ec1a18e987bf6369a4faff491bd0`; matches prior audit and lock mapping, applies in scratch; installed cache/coordinator files match archive plus patch.
- Native test body SHA-256: `5f87570e5d43d190cf2840c91c7ad4b4b06297b41d7587f915db253636ad4632`; matches prior audit. The wrapper hash is recorded without claiming its platform dispatch executed.
- Both coordinator baseline files match the archived unpatched package; both patched coordinator files match the archived patched package. Whole cache header differs from old t3.15 because of the image fingerprint field; old bundle cache counts **269,246,464 → 8,388,288 are historical and must not be reused**. Fresh current C++ recapture confirms the corrected prior-audit counts above.
- Parser dependency pins are unchanged between requested endpoints: parser-lock.diff contains only enriched-markdown patch selection changes. Both pipelines execute the same installed unified/remark-parse/remark-gfm (11.0.5/11.0.0/4.0.1) dependency tree. Installed JS package contents were not compared to remote registry archives.

## Second pass and limits

second-pass.mjs independently re-reads requested Git objects, verifies every current source pin, recomputes raw-sample medians and stage totals, reexecutes all 27 stream outputs/counts and matches output hashes, reruns both portable cache binaries, checks model totals, confirms zero differential results and the clean checkout. **PASS**. This is a second implementation/execution by the same auditor, not a second human/model. Timing samples are checked for internal consistency, not independently recollected in that pass. Final SHA256SUMS covers the delivered regular files; symlinks are recorded separately and are not followed.

**iOS Objective-C/Foundation/device: UNVERIFIED**, Linux has no usable native runtime/device here. **Android render: UNVERIFIED**, emulator is reserved/unavailable and outside authorized scope. No UI/layout/frame/native-memory claims.

## Reproduction

Run scripts sequentially with Node supporting TypeScript stripping, from any cwd, while this pinned checkout and its installed mobile dependencies remain available:

```sh
python3 /tmp/to24263-r7-proof/identity.py
node /tmp/to24263-r7-proof/capture.mjs
node /tmp/to24263-r7-proof/parse-trace.mjs
node /tmp/to24263-r7-proof/stream-stage.mjs
node /tmp/to24263-r7-proof/extra-equivalence.mjs
node /tmp/to24263-r7-proof/integration-differential.mjs
node /tmp/to24263-r7-proof/scaling.mjs
python3 /tmp/to24263-r7-proof/cache-capture.py
node /tmp/to24263-r7-proof/pending-model.mjs
node /tmp/to24263-r7-proof/second-pass.mjs
cd /home/ubuntu/wt/pr-24263/apps/mobile
vp test run --config /tmp/to24263-r7-proof/focused.config.mjs --cache false
```

The downloaded evidence/ tree is retained unchanged; its legacy scripts use other scratch paths and historical pins. Use the top-level adapted scripts only. Recapture changes observational samples and requires regenerating report/checksums.

## FRICTION

The published bundle contains t3.15 cache results while the companion audit records corrected t3.16 results; identity plus a fresh portable recapture resolves the mismatch. Initial scratch cache adaptation incorrectly treated the scalar image fingerprint as a string; corrected before the successful build. The second-pass Git reader initially hit Node's default output buffer on the archive; increasing maxBuffer resolved it. No source defect followed from either harness issue. Node selected by the default shell here is v24.22.1 (the checkout shell reports v26.12.1); recorded results state the actual execution runtime. Shared VM load limits wall-time interpretation. Parent owns publication/upload.

Audited by gpt-6.1-sol through the Codex harness in T3 Code.
