# issue-24694 native evidence index

Head `87a794338a082a070007eae36305a81aabc55110`; base `3de45c6254`. Captured 2026-10-26 UTC in `/home/ubuntu/t3code`. No commits, forge writes, server start/stop, or subagents. Source restored byte-for-byte to HEAD; final git status clean.

## Environment and provenance

Existing Simlock pooled Pixel 9 session `issue-24694`; Android 16 x86_64, app `com.t3tools.t3code.dev`, real Gboard (`com.google.android.inputmethod.latin`), test IME left disabled. System font setting reports **large**. Whole screenshots are native 1080×2424 portrait pixels, without cropping/resizing. Logical viewport width was not independently queried; do not infer a verified dp width from the screenshots. No font/keyboard settings changed. Dark/light were changed through OS appearance and allowed to settle.

Backend reused on port 13773, isolated home `/home/ubuntu/t3code/.t3/issue-24694`; Metro reused on 8081 at fs-10.tail131df4.ts.net. Explicit required agent-device Metro reload was sent. Initial reload did not update the app; dev-client relaunch/reload recovery eventually loaded HEAD and Paste was verified in the native accessibility tree. Backend log showed an automatic watched-file restart during recovery; this agent never requested a server restart.

Real navigation: seeded remote-command-center thread → More actions → Open terminal → Show keyboard; terminal term-1 is a writable shell. Native Copy from an unsent composer draft placed `PROOF24694` on clipboard. Paste was tapped once with CTRL selected, then the Gboard x key: terminal visibly reads `PROOF24694x` (wrapped); after dismiss/show, y was typed. No Enter was sent. CTRL+u discarded the unsent shell line afterward.

Matched stills were recaptured with the same empty shell input, terminal output, Gboard number row, font and viewport. Only the two changed source files were temporarily written from `git show 3de45c6254:path`; HMR was confirmed by fixed Paste disappearing. Restored HEAD with the same scoped helper; Paste returned. Earlier `.t3/issue-24694-before-dark.png` is not used. Original authentic before.png/mp4 remain untouched but are not the matched pair.

## Matrix results

| Row | Status | Evidence / boundary |
|---|---|---|
| 1 Android Linux dark phone | PASS, logical-width gap | before-dark/after-dark whole stills; before-scroll and after-interaction-verified recordings. Fixed Paste and Dismiss remain while scrolling to both ends. Tail CLEAR, ~, pipe, slash, hyphen visible. CTRL selection → one Paste → ordinary x proves reset and retained Gboard usability. |
| 2 Android light phone | PASS | before-light/after-light whole stills. Clipboard icon, circular border, separation and earlier fade visible; scroller width reduces and CTRL is clipped at fade. |
| 3 Android hidden/shown | PASS | after recording plus keyboard-hidden still: accessory absent, Attach output and Show keyboard present; Show restores Paste; y resumes input. |
| 4 iOS native | UNVERIFIED | No iOS lease/cache validation performed while retaining the existing Android session for lead handoff. No native build attempted. Pixel evidence does not prove SF Symbol or iOS floating Show keyboard. |
| 5 macOS labels / modifier reset | PARTIAL | Linux CTRL reset exercised; macOS CMD/CTRL labels source-only. No macOS environment connected. ALT reset not separately exercised. |
| 6 Android wider | UNVERIFIED | landscape-left request failed: display rotation adb timed out after 1ms. Screenshot remained 1080×2424 portrait; portrait requested again. before-wide.png is rejected as wider evidence and not uploaded. |
| 7 permission/error guards | SOURCE-ONLY PASS | isAccessoryVisible requires canOperateTerminal && keyboardState.isVisible && !isAccessoryDismissed. Loading/error/no-grant branches precede accessory. No runtime read-only/disconnected fixture claim. |

## Every visible difference and exact diff method

Pairs are full resolution and unmasked. `diff.py` computes absolute RGB deltas; zero-threshold view multiplies each channel delta by 8 (clamped 255). The second view marks pixels magenta where **max absolute RGB channel delta >16/255**. No perceptual tolerance, image registration, cropping, or ignored regions. diff-stats.json contains region counts.

- Both pairs: new fixed clipboard circle immediately left of Dismiss, scroller's right fade moves left, CTRL is more clipped, scroller-border pixels change. Dismiss stays in place. Terminal content and keyboard geometry stay in place. At terminal boundaries there are 28 (light)/24 (dark) low-level differing pixels, none above 16; no visible terminal content change.
- Light: same clock 7:28; Android bottom keyboard-dismiss chevron changes gray/white tint (196 pixels above threshold), unrelated to application source. Zero-threshold changed pixels 12,065; above 16: 1,996 (toolbar 1,800, keyboard/system bottom 196).
- Dark: clock before 7:29 versus after 7:28; cellular signal glyph changes one level. Clock region has 266 pixels above threshold, and signal accounts for the remaining 117 outside toolbar/clock. Keyboard is pixel-identical. Zero-threshold changed pixels 12,985; above 16: 1,769 (toolbar 1,386; clock 266; signal 117).
- Cursor: same terminal position and visible block phase in both matched pairs; no cursor masking. Clock freeze is not exposed in the device settings command; real clock deltas are reported above.
- Tail stills intentionally compare end-of-scroll state: base has text paste in scroller at left edge; head has fixed icon at right and CLEAR shifts left. These are supporting stills, not used for the two primary pixel pairs.

All uploaded stills and diff images were visually inspected. Recording reviewed using 1-second contact frames as well as native action results; the complete clip remains the evidence for timing.

## FRICTION and handoff

- Pool intermittently returned ETIMEDOUT/Remote daemon unavailable; retrying the same existing session recovered. No new device or server was created.
- `/reload` initially retained stale UI; dev-client relaunch had a blank/downloading period before navigation recovered. Do not judge captures made before Paste appeared.
- Android 16 rejects shell clipboard read/write; native composer Select all/Copy used instead. Native selection menu lacked accessibility refs, so two screenshot-backed coordinate presses selected all and copied the short marker.
- An initial scroll-back started near Android's edge and dismissed Gboard; that failed recording is excluded. Verified driver uses x=160 away from the edge.
- Session save-script was unavailable because this inherited session was not armed. reproduce.sh is a documented manual driver, not a successful auto-exported replay.
- iOS, macOS-host labels, actual dp width and landscape remain explicit gaps. No claim that iOS pool/cache is unavailable was established.
- Session and pairing intentionally retained for lead's independent after-test; no close/wipe. OS appearance restored dark and portrait requested. No server lifecycle action. Unsent composer marker cleared before handoff; no message sent.

## Published artifacts

All local artifacts are under `/home/ubuntu/t3code/.t3/issue-24694-evidence/`. Upload performed with the [ghdrop skill](/home/ubuntu/.codex/skills/ghdrop/SKILL.md), `ghdrop upload -m`.

![before-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff3b80d5aa4b8ddf/before-light.png)
![after-light.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cccef1f6479b4044/after-light.png)
![before-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5ea0d5ddef50614b/before-dark.png)
![after-dark.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/98d8d2ae364daa1a/after-dark.png)
![light-diff-zero-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/71a9bc038d66ba63/light-diff-zero-x8.png)
![light-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/472b7faf48961775/light-diff-threshold16.png)
![dark-diff-zero-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/02eb04d25ddf6ed5/dark-diff-zero-x8.png)
![dark-diff-threshold16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2da28b12b84fb666/dark-diff-threshold16.png)
[after-interaction-verified.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/539504c0d8ce6e78/after-interaction-verified.mp4)
[before-scroll.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/458114977b1ebe79/before-scroll.mp4)
![tail-fixed.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6e5c21c6d0882668/tail-fixed.png)
![before-tail.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d5323f2880f8b75a/before-tail.png)
![pasted-ctrl-reset.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1c35c5b2e81a4442/pasted-ctrl-reset.png)
![keyboard-hidden.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/761f6740023c0c5a/keyboard-hidden.png)
[reproduce.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea5340036513f954/reproduce.sh)
[diff.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30dc93c6d555511b/diff.py)
[source-state.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e98dedeadf3b66a/source-state.py)
[diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d5c14ec917ba88c5/diff-stats.json)
![dark-comparison.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/040e41ed1c0c780c/dark-comparison.png)
