# Final-head mobile VM evidence

PR [#22742](https://git.cafe/pingdotgg/t3code/pulls/22742), registered in T3 with host git.cafe. Branch `fix/issue-22737`; checkout `/home/ubuntu/wt/issue-22737`.

Head [268b1b0](https://git.cafe/pingdotgg/t3code/commit/268b1b075caeec41e6f778e98b65403d2890ed38) verified before and after checks, with empty `git status --porcelain=v1` both times. Supplied historical comparison [ea1c494](https://git.cafe/pingdotgg/t3code/commit/ea1c49419e742c688cc4951d63545046a06ac8c0) is an ancestor; current local main merge-base is [07d38b8](https://git.cafe/pingdotgg/t3code/commit/07d38b8d17167c8d17fba1184dbe13a307fada74). Comparison uses the supplied pair: one added line in `apps/mobile/src/Stack.tsx`.

Executed 2026-10-21 08:03–08:04 UTC. No source changes, pushes, forge writes, browser, simulator, EAS build, server, or fixture seeding. Public artifact uploads and T3 PR registration only. No new regression tests added.

## Commands and results

Local `apps/mobile/node_modules/.bin` and root `node_modules/.bin` prepended to PATH. Exact commands, working directories, complete output and exit codes are in the companion command log.

- From `apps/mobile`: `vp test run --project unit src/native/workspace-stack-projection.test.ts src/lib/android-workspace-navigation.test.ts src/lib/adaptive-navigation.test.ts src/features/threads/thread-route-hydration.test.ts src/features/threads/new-task-context-presentation.test.ts src/features/threads/new-task-project-selection.test.ts src/features/threads/checkout-new-task-branch.test.ts src/features/home/home-thread-navigation.test.ts` — exit 0; **8 files passed, 74 tests passed**, 2.80s.
- From root: `vp run --filter @t3tools/mobile typecheck` — exit 0; `tsc-rs --noEmit`, cache disabled.
- From root: `vp lint apps/mobile/src/Stack.tsx` — exit 0; one `react(no-unstable-nested-components)` warning at line 1059, outside the one-line change at 479. No claim of warning-free lint.

Versions: Linux 6.1.102 x86_64; Node v24.21.0; Vite+ v1.3.0; Vitest v5.0.5; Vite v8.3.4; Rolldown v1.2.14; Oxlint v1.88.0 (reported by `vp --version`); oxfmt v0.73.0; oxlint-tsgolint v7.0.2004; tsdown v0.23.1; tsc-rs reports Version 7.1.0-dev; Git 2.43.0; cafe 0.10.0; ghdrop v0.2.0.

Version probe caveat: direct `node_modules/.bin/oxlint --version` was unavailable and made that combined metadata command exit 127. Oxlint version was successfully reported by Vite+; actual targeted lint passed. This metadata probe is distinct from the three validation commands.

## Matrix accounting

[Original matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3bf627438f5fa2a4/pr-22742-proof-pass-1-matrix.md). All **10/10 rows accounted for** below. This is reporting coverage, not native proof: Android **0/8 runtime rows verified**, all A1–A8 unverified; C1 iOS runtime also unverified. C2 is a source boundary control. VM checks provide shared supporting evidence and do not independently certify any fixture's rendered geometry.

| Row | VM proof / scope | Runtime status |
| --- | --- | --- |
| A1 Ready project draft | Passing context-presentation/project-selection suites; static route option inspected | Android UNVERIFIED |
| A2 Unresolved project shell | Source retains AndroidScreenHeader; hydration/selection suites pass, no rendered loading geometry proof | Android UNVERIFIED |
| A3 Branch preparation/completion | Existing checkout-new-task-branch suite passes; preparation source inspected | Android UNVERIFIED |
| A4 Branch failure/exit | Existing checkout suite included; no native alert/exit interaction executed | Android UNVERIFIED |
| A5 Restored/shared/populated draft | Hydration/context/selection suites included; no attachment/share runtime exercise | Android UNVERIFIED |
| A6 Scratch/clone/unavailable controls | Context/selection suites included; no clone/permission runtime exercise | Android UNVERIFIED |
| A7 Keyboard/navigation return | Android/adaptive/home navigation and workspace projection suites pass; no keyboard/native-return exercise | Android UNVERIFIED |
| A8 Theme/width stress | Static route predicate has no theme/width dependency; no appearance/orientation exercise | Android UNVERIFIED |
| C1 iOS native sheet | Predicate preserves iOS initial native header; no iOS surrogate used | iOS UNVERIFIED |
| C2 Web/desktop/other routes | Supplied-pair diff changes only mobile NewTaskDraft option; sibling routes untouched | Source boundary inspected; runtime not required |

All eight baseline suites were run exactly once. No source-text, callback-wiring, or invented geometry tests were substituted. Mobile typecheck and targeted lint support the whole changed declaration, not platform layout measurements.

## Behavior and proof limits

Android NewTaskDraft initializes with `headerShown:false`. The transient “Switching branch...” placeholder consequently loses its native title/header; checkout already guards leaving this placeholder. The unresolved/loading draft retains AndroidScreenHeader and the loaded draft retains SheetHeader. iOS initial header visibility and sheet options remain unchanged. Web/desktop do not use this mobile stack; no contracts, providers, server, data, or connection-mode changes.

The reporter's controlled delayed-hide experiment is historical evidence of a **317-physical-pixel initial-header offset**. Its persistent trigger remains unconfirmed. No visible pixel comparison, measured first-frame geometry, native Android reproduction, or persistent-offset fix is claimed here.

Under the explicit Android VM exception, pixel captures and seed scripts do not apply. Missing native evidence: A1–A8 Android runtime and C1 iOS runtime; iOS cannot substitute for Android. All requested VM checks are complete. Optional future Android priorities from the matrix: A1 initial/settled layout, A3 preparation-to-ready, A7 keyboard/return.

## Friction

category | what happened | what would avoid
--- | --- | ---
tool | Standalone root Oxlint binary absent; Vite+ version probe and actual lint work | Query bundled tool versions through `vp --version`
brief | Supplied historical base differs from current local main merge-base | Continue naming the exact historical comparison pair
infra | Android runtime unavailable by explicit VM exception | Supported Android host for a separate future native pass

Local artifacts: `/tmp/pr-22742-final-head-command-log.txt`, `/tmp/pr-22742-final-head-evidence-index.md`, `/tmp/pr-22742-run-evidence.py`. No repository artifacts created. Model/harness: GPT-6.1-Sol through Codex in T3 Code.
