# Independent proof audit PASS2

For [#24619](https://git.cafe/pingdotgg/t3code/pulls/24619). Reviewer: GPT-6.1 Sol / Codex in T3 Code. Evidence-only audit; no source edits, commits, pushes, PR comments/body writes or repository evidence-ledger writes.

**SUFFICIENT for native SET S0–S3 in all four configurations. SUFFICIENT for the explicitly labeled harness CLEAR C0–C4 in all four configurations. INSUFFICIENT for the originally requested native interactive CLEAR: C2 has 0/8 revision/configuration cells. No recapturable recording defect found.** The missing native action is a shipped-UI limitation; repeating the same recordings cannot supply it. Do not describe harness CLEAR as native interactive clear, and do not change the prior unrelated 32-cell matrix verdict.

[Capture index](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5736c9e84e2836cf/CAPTURE-INDEX.md) · [Complete capture archive](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bcdf9f5d79ea4d02/sticky-traits-complete.tar.gz) · [Public artifact manifest](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4b9562a064799e51/artifact-urls.json)

## Scope and coverage

Baseline [8525000dce](https://git.cafe/pingdotgg/t3code/commit/8525000dcecdf738c26c12f15b38b43082b9701f) is the immediate parent of fix [ef56e48934](https://git.cafe/pingdotgg/t3code/commit/ef56e4893417afe46c309b39f17a8bb23991ad6a). Candidate [39f1493f0d](https://git.cafe/pingdotgg/t3code/commit/39f1493f0de9f170ddd857eb5beb469a04857883) contains unrelated main-merge changes too. Its composerDraftStore.ts is byte-identical to the fix commit's version; the immediate sticky-state assertions isolate this branch, rather than attributing every full-frame difference to it.

- 1440×1000 light: native SET sufficient; harness CLEAR sufficient; native C2 unverified.
- 1440×1000 dark: native SET sufficient; harness CLEAR sufficient; native C2 unverified.
- 390×844 light: native SET sufficient; harness CLEAR sufficient; native C2 unverified.
- 390×844 dark: native SET sufficient; harness CLEAR sufficient; native C2 unverified.

There are 16 canonical continuous clips, 32/32 native SET core checkpoint cells, 40/40 harness CLEAR core checkpoint cells, and 16 narrow Traits-menu supplements: 88 stills, 44 paired endpoints and 88 threshold difference masks. Both revisions have every final checkpoint. Only canonical baseline/candidate configuration directories were reviewed and credited; pilot/discarded captures were excluded.

S0/C0: source is started/stopped B gpt-6-sol/Low, sticky A gpt-6.1-sol/Extra High, A memory Extra High, no B memory, no source model draft. S1/C1: real Traits High choice produces explicit B/High and B memory on both revisions; baseline immediately mutates sticky A to High, candidate preserves Extra High, and A memory stays Extra High. S2: genuinely fresh no-model prompt-link destination receives baseline A/High versus candidate A/Extra High. S3: actual sidebar return shows the same source B/High and preserves its prompt. This is navigation restoration, not explicit model-picker restoration.

CLEAR starts in an independent clean home/profile, repeats the native High choice, then directly calls `setProviderModelOptions(S, codex, null, {instanceId:codex, model:gpt-6-sol, persistSticky:true})`. C2 removes explicit B options and its memory on both revisions, while baseline loses sticky A options and candidate retains Extra High. C3 fresh A follows those values; C4 returns to the same explicitly empty B. These are valid harness/store-transition observations only.

## Review method and observations

Opened/decoded all 16 MP4 files using ffmpeg. Independently extracted 843 full-viewport frames at 2 fps throughout the clips, plus 408 frames at every indexed action boundary (−0.15, +0.3, +0.7, +1.2 seconds), every checkpoint timestamp, start and end. Viewed all 16 temporal contact sheets and all 16 boundary/checkpoint sheets with view_image; inspected every checkpoint's held video frame against its paired still, using larger composer/menu views for labels. Reviewed both full-frame difference masks for all 44 pairs. This is systematic temporal sampling, not a claim of inspecting every encoded frame. Sampling times and review scripts are in the audit bundle.

Light/dark appearance, viewport dimensions, model names and selected traits match each run's index. Narrow Traits-menu supplements expose the checked effort that the collapsed footer label cannot show. Each final return shows Existing B and the preserved synthetic source prompt. The destination is a new unpromoted project draft with the actual route ID, prompt “Sticky proof”, model A, and the expected traits; no carry/model/provider query parameters or project/server defaults supply it. Some navigations briefly display “Could not open the link” before automatically resolving; the uncut recordings retain that transient. No manual repair occurs, and the final destination assertions pass. This is not a claim of flawless prompt-link loading UX.

Independently checked all 16 indexes for exact revision, initial absent composer persistence, 16 distinct fresh homes, expected dimensions/DPR, action/checkpoint pairing, source server model B/Low plus one run unchanged at every checkpoint, retained source prompt, sticky/per-model transitions and fresh destination state. Independently recomputed every threshold0 and threshold16 difference mask from the original full-size PNGs: all 88 match exactly. Incidental timestamp/sidebar/cursor/compression differences remain visible and unmasked; masks are not proof that only the intended labels changed.

Reviewed driver, fixture and orchestration scripts. Synthetic store initialization occurs once before recording. There are no later store writes during SET except the real UI's writes; CLEAR has exactly the disclosed direct harness call. Projection fixtures are written only after stopping the isolated migration server. No live production userdata is read/copied/written, and no baked VITE origins are used. Synthetic projection replay proves frontend behavior, not coherent event-sourced backend behavior or provider execution.

Source review confirms TraitsPicker uses radio values and serializes actual selections. The Default badge is not unset. The other direct caller is the reasoning keybinding. Neither this evidence nor these source paths establish a native all-options clear affordance. B's implicit Fast default means native High persists reasoning=high plus serviceTier=priority. Harness CLEAR removes all explicit options; visible B Medium/Fast and baseline fresh A catalog defaults are not remembered explicit traits. Candidate sticky A's raw options remain reasoning=xhigh.

Public packaging was checked independently after upload finished: the final index downloaded byte-identical, all 259 required linked videos/indexes/stills/comparisons/recipe files downloaded and SHA256-matched local bytes, and all 340 canonical evidence files in the downloaded 455-member archive byte-matched local files. The delivered public manifest snapshot has 438 entries (the publisher later reported 439). All index artifact links are in that snapshot. No sensitive runtime home/profile/server-log paths are archived. A credential-pattern scan found only the driver’s literal Token-parsing regex, inspected as a false positive; no credential values were found. Initial urllib requests received 403; curl succeeded. Transient DNS failures during parallel downloads were retried successfully; no public byte mismatch remains.

## Independent matched reproduction

After explicit ownership handoff, independently ran baseline AND candidate 390×844 dark SET from separate new audit homes and browser contexts, using reviewed copies of the recipe under `/tmp/ev-24619/audit2`. Each run performed migration, stopped before synthetic fixture writes, then restarted the same isolated home on its pinned revision. Headed Chromium/Xvfb and ffmpeg x11grab only; no T3 recorder or preview.

Baseline checkpoints: S0 1.638s, S0-traits 3.853s, S1 6.242s, S2 19.330s, S2-traits 21.409s, S3 24.937s. Candidate: S0 2.223s, S0-traits 4.305s, S1 6.651s, S2 18.004s, S2-traits 20.081s, S3 23.384s. Both full sequences and separately written raw-state checks PASS. Baseline fresh A/High versus candidate A/Extra High is visible; both return B/High. Independent reproduction did not run CLEAR and does not add native-clear credit.

[Baseline reproduction video](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/988e40709a283d0e/flow.mp4) · [Candidate reproduction video](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e3b81049b1192c1/flow.mp4)

![Independent reproduction: baseline at left, candidate at right; fresh A traits above and retained source B traits below](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e1ac21611ffe3551/reproduction-pair.png)

## Limits and teardown

No evidence of missing baseline checkpoints, wrong revision, contaminated initial B memory, omitted dark/narrow clips, mismatched recaptured narrow-light actions, hidden reseeding or unmarked native-clear substitution remains. No recording recapture is requested. Preserve the explicit native-clear limitation in publication. Native mobile, Electron shell, relay/tunnel, multi-device, explicit B picker restoration and real vendor execution remain outside this proof.

Checkout restored to exact candidate [39f1493f0d](https://git.cafe/pingdotgg/t3code/commit/39f1493f0de9f170ddd857eb5beb469a04857883), clean. All 56 captured reproduction server/browser/Xvfb/ffmpeg/driver PIDs were checked through /proc: zero active, zero zombies. Only captured PIDs/parent-linked descendants were signaled. Disk remained 23GB available, above the 5GB stop threshold. Runtime ownership returned to parent. Parent owns final scratch/worktree cleanup.
