Issue 23860 mobile-only capture report Captured: 0/16 planned still images; 0/8 planned interaction recordings; 0/16 planned diff images (8 raw diff0 + 8 amplified). Phone-only subset: 0/8 stills and 0/4 interaction recordings. The 1440/native-large mapping is conditional and unverified: no device session existed to establish an equivalent native viewport. It is retained in the planned denominator, not silently waived. Exact missing paired-image rows (each requires both before and after): - ThreadPullRequestsSheet, light, 390: before missing; after missing. - ThreadPullRequestsSheet, dark, 390: before missing; after missing. - GitOverviewSheet, light, 390: before missing; after missing. - GitOverviewSheet, dark, 390: before missing; after missing. - ThreadPullRequestsSheet, light, 1440/native-large: before missing; after missing. - ThreadPullRequestsSheet, dark, 1440/native-large: before missing; after missing. - GitOverviewSheet, light, 1440/native-large: before missing; after missing. - GitOverviewSheet, dark, 1440/native-large: before missing; after missing. All eight before/after x light/dark x phone/large recording conditions are missing; each planned clip would visit both sheets. Live conflicting -> unknown -> conflicting timing is wholly unverified, and static snapshot replay would not establish that timing. No screenshots or recordings exist, so image/video inspection and measured pixel comparisons were not performed. The prepared diff driver uses raw absolute RGB difference (diff0), 8x brightness amplification, and counts a changed pixel when its maximum absolute RGB channel difference exceeds 8. No threshold pass/fail result is claimed. What was established: - Actual isolated baseline and head server runs generated non-draft OPEN PR snapshots from synthetic GraphQL UNKNOWN responses. - Baseline stored unknown; head retained conflicting. Genuine title change/unknown and known mergeable changes were also checked. - Selected persisted-event snapshots differ only in mergeability and syncedAt; author/avatar are synthetic. - Static fixture WebSocket getThreadProjection preflight exactly matched both selected snapshots after reseeding. - 1383 mobile files matched head byte-for-byte, with only scratch eas.json excluded. Base/head change only server reactor and server tests. These are backend/fixture proof, not mobile rendering proof. Rendering environment: Linux host; EAS account pingdotgg availability confirmed by requester. Static iOS simulator build requested on macos-tahoe-26.6-xcode-27.1, preview variant, showcase enabled, OTA disabled, real telemetry/Clerk/relay values suppressed. Intended first device iPhone 17e, then native large viewport if feasible. No simulator was started, so actual device dimensions, iOS runtime, appearance and rendered state remain unverified. FRICTION - First static build failed CONFIGURE_EXPO_UPDATES on differing runtime fingerprints due to exported dependency paths. Scratch appVersion policy passed that phase on retry. - Retry failed Xcode compilation: Unable to resolve module dependency GhosttyKit in T3TerminalNative. An installable source-matched simulator build resolving that dependency is the prerequisite. No further retry was attempted. - Shared checkout was moving between base/head for the web agent. The first server trial from that checkout was discarded; definitive runs used an exported source copy with explicit base/head reactor blobs and hash records. - One early static seed had advanced to the proof driver's final mergeable state. It was rejected; served-state equality was rechecked for both selected variants. No screenshot was taken from it. - EAS CLI root calls generated eas.json and empty app.json. Both were removed; final target worktree git status is clean. No tracked files were edited. - No vp dev, lead server lifecycle change, browser, push, merge, PR, or public comment. No real credentials or user data uploaded. Only synthetic runtime transcripts, snapshots, scratch drivers and sanitized error/report files are public. Cleanup verified: - Owned static fixture server PID 628847 stopped. - Owned cloudflared fixture tunnel PID 605747 stopped. - Earlier replacement servers were stopped by captured PID before each restart. - No simulator:start call was executed; no .env.eas-simulator exists in scratch mobile directory. - Both owned EAS builds are ERRORED terminal states; no remaining build/session to cancel. - Target /home/ubuntu/wt/issue-23860 git status --short is empty; generated app.json absent. Stopped before the 30-minute deadline after the second build failed; no third build requested.