# Proof audit pass 2

## Findings

No blocking proof discrepancy or confirmed code defect found. Evidence is SUFFICIENT under the explicit Android VM exception. This is evidence-completeness approval, not Android runtime verification or a merge recommendation.

Reviewed [#22742](https://git.cafe/pingdotgg/t3code/pulls/22742), branch `fix/issue-22737`, head [268b1b0](https://git.cafe/pingdotgg/t3code/commit/268b1b075caeec41e6f778e98b65403d2890ed38), against supplied comparison [ea1c494](https://git.cafe/pingdotgg/t3code/commit/ea1c49419e742c688cc4951d63545046a06ac8c0). Independent `git merge-base` returns that supplied comparison. Checkout HEAD and cafe headOid agree; working tree clean before and after the rerun. The pinned pair changes exactly one line: `apps/mobile/src/Stack.tsx:479`, adding `headerShown: Platform.OS !== "android"`. Current local main is deliberately not the comparison target.

The live cafe PR body matches the supplied local final body in substance, including exact head/comparison, test counts, existing lint warning, the branch-preparation side effect, custom toolbar preservation, iOS unchanged options, and explicit native limits. Its “All commands exited 0” sentence refers to the three listed validation commands: the companion log separately and accurately discloses a version-probe exit 127. It should not be read as saying every metadata probe succeeded. This does not contradict the validation claims.

## Row-by-row reconciliation

“Accounted” below means code, evidence index, command log and current PR description agree on scope and limits. It does not mean a fixture ran on Android.

| Row | Code/evidence reconciliation | Status |
| --- | --- | --- |
| A1 Ready project draft | Static Android false overrides inherited true before the ready child mounts; existing child `NativeStackScreenOptions(false)`, `SheetHeader`, content and keyboard dock remain. Context/selection suites are supporting logic evidence only. | Accounted; Android runtime UNVERIFIED |
| A2 Unresolved project shell | Missing selected project returns its AndroidScreenHeader and child hide option. Static declaration also covers the interval before that child layout effect. Hydration/selection checks do not render the shell. | Accounted; Android runtime UNVERIFIED |
| A3 Branch preparation/completion | Branch without pendingTaskId/draftId enters preparation; centered “Switching branch...” has no custom toolbar. Route title setter does not set headerShown. New static option removes this placeholder's native title/header too. usePreventRemove guards pending preparation/checkout. Success enters ready draft. Independent existing checkout suite passed. | Accounted; Android runtime UNVERIFIED |
| A4 Branch failure/exit | Route waits for pending checkout to settle, alerts on non-interrupted failure, then goes back; interrupted failure skips alert. Checkout suite tests real Git failure and dirty-file preservation, not native alert/exit. | Accounted; Android runtime UNVERIFIED |
| A5 Restored/shared/populated draft | Array/string normalization and IDs retained; pendingTaskId/draftId skip branch preparation. Populated content shares the unchanged draft component and static route declaration. No attachment/share or restored native layout execution claimed. | Accounted; Android runtime UNVERIFIED |
| A6 Scratch/clone/unavailable controls | All enter the same route/draft component; one-line diff changes no clone, permission, model, queue or composer logic. Context/selection tests are supporting checks; content-height variants have no measured geometry evidence. | Accounted; Android runtime UNVERIFIED |
| A7 Keyboard/navigation return | Static route policy has no focus/keyboard dependency. Existing keyboard dock, nested routes and exits unchanged. Android/adaptive/home/projection tests cover navigation logic, not native keyboard/return geometry. | Accounted; Android runtime UNVERIFIED |
| A8 Theme/width stress | Predicate depends only on platform; existing style, safe-area, width and theme handling untouched. No orientation, width or appearance exercise claimed. | Accounted; Android runtime UNVERIFIED |
| C1 iOS native sheet | New predicate evaluates true on iOS, preserving inherited true. Sheet transparency/animation and iOS-specific navigator untouched. No iOS surrogate is counted as Android proof. | Accounted; iOS runtime UNVERIFIED |
| C2 Web/desktop/other mobile routes | Complete pinned diff is mobile NewTaskDraft-only; no sibling route, contract, provider, server or client-runtime change. Android uses native-stack export; iOS uses its platform-specific module. | Accounted; source boundary inspected, runtime not required |

## Proof checked and independently rebuilt

Read local pass-1 matrix, final-head evidence index, complete final-head command log and local final PR body; fetched current PR body/head through cafe only. Registered PR in T3 with explicit host `git.cafe`, repository `pingdotgg/t3code`, number `22742`; final linked-PR listing confirms registration. No forge mutations, comments or reviews posted.

The supplied log records the eight named existing suites once, with **8 files / 74 tests passed**, exit **0**, 2.80s. Mobile `vp run --filter @t3tools/mobile typecheck` exits **0**. Targeted `vp lint apps/mobile/src/Stack.tsx` exits **0**, reporting one react(no-unstable-nested-components) warning at line 1059. The warning's screenLayout callback is already present in the supplied comparison; it is outside the added line. Separate combined version probe exits **127** because standalone root oxlint is absent; bundled Oxlint version is reported by Vite+. No warning-free or universal probe-success claim is needed.

Independently rebuilt the allowed proof item at the exact reviewed head on 2026-10-21, start 08:07:03 UTC:

Working directory: `/home/ubuntu/wt/issue-22737/apps/mobile`; PATH prepended with that checkout's mobile/root `node_modules/.bin`.

```sh
vp test run --project unit src/features/threads/checkout-new-task-branch.test.ts
```

Result: **exit 0; 1 file passed; 11 tests passed; 2.62s**, Vitest 5.0.5. The suite uses temporary real Git repositories and checks checkout success, pending completion, failure preserving dirty files and worktree selection. It is an existing behavioral suite, not a new source-text/option-value/wiring surrogate. This is one additional independent run; it does not change the original final-head batch count of 74. HEAD was reconfirmed afterward and status remained empty.

Source traced: inherited header options and parent NewTaskSheet; Android navigator export; NativeStackScreenOptions layout-effect setter; full NewTaskDraftRouteScreen normalization/preparation/guard/error path; unresolved and ready Android render branches and unchanged iOS branch; callers in Home, pending list, command palette, project picker, AddProject reset and prompt-link resolver. The shared declaration covers those callers without a new transport or contract path.

## Coverage and gaps

10/10 matrix rows reconciled; 0/8 Android runtime rows verified; iOS runtime also unverified. Pixel captures, rebuilt native captures and pixel deltas do not apply under the explicit exception. No browser, simulator, emulator, native/EAS build or dev server started; no new tests or source edits. The 317-physical-pixel delayed-hide experiment is described only as supplied historical evidence. Neither it nor this audit establishes the persistent trigger, a native first-frame measurement at this head, or an observed persistent-offset fix. Prior isolated reviewer verdicts quoted in the body were not independently re-performed or authenticated in this proof audit; they are not used as proof for any row.

All requested proof-audit work completed within the 60-minute budget (approximately 3 minutes, ending 08:08 UTC). Optional future Android checks remain A1 initial/settled layout, A3 preparation-to-ready and A7 keyboard/return; they are not outstanding requirements of this exception-scoped pass.

## FRICTION

| category | what happened | what would avoid |
| --- | --- | --- |
| tool | A few exploratory source searches used nonexistent guessed paths; corrected using rg --files. No verification failure resulted. | Discover filenames before targeted reads. |
| brief | Historical comparison differs from moving local main. | Keep exact head/comparison in every evidence handoff, as supplied here. |
| runbook | Separate metadata probe exit 127 could be confused with validation command results. | Continue separating metadata failures from the three validation exits. |
| infra | Android cannot run on this VM, as stipulated. | Supported Android host for optional later runtime verification. |
| forge | Cafe head/body read and T3 explicit-host registration succeeded. | No change needed. |
| policy | Read-only forge scope and Android exception were respected. | Preserve explicit exception and runtime labels in later handoffs. |
| model | No model/capability mismatch. | No change needed. |
| other | No additional friction. | No change needed. |

Report by GPT-6.1-Sol through Codex in T3 Code. Uploaded using the ghdrop skill; no forge writes.

VERDICT: SUFFICIENT
