# Native voice attempts — exact trigger remains unverified

Before [bbdc7dca32](https://github.com/pingdotgg/t3code/commit/bbdc7dca320ee4fbc7131498aaffef2fa1eb3d41); after [bb8005d7d7](https://github.com/pingdotgg/t3code/commit/bb8005d7d71765e9284f6be12076392ce749983b).

Environment: leased iPad Pro 13-inch (M5), simbox-1; Settings > General > About confirmed iPadOS 27.2 and the device name. Portrait, light, Large text size, 1032 × 1376 points; original video 2064 × 2752 pixels. Agent-device 0.21.32. Separate Metro bundles and fresh synthetic backends, T3CODE_DEV_SEED=0.

## Setup on base

1. After R01, the unchanged voice driver selected Settings → Voice → fs-30 → Use environment, returned to the synthetic thread, focused the native editor, typed `Draft`, and tapped Start dictation. The OS microphone permission alert appeared. The immediate native suffix attempt had no focused input. The driver could not find Dismiss voice input error while the permission alert was foreground. Recording was stopped and preserved as `r03-r04-permission-base.mp4`; it includes the Preparing state behind the alert. This is an interrupted setup attempt, not R03 proof.
2. Tapped Allow. The app then showed “Install a transcription model for this environment in Settings → Voice, then try again.” Dismissed the error and cleared the unsent draft using the normal native editor.
3. A second invocation of the unchanged missing-package setup driver stopped because fs-30 was already selected, so no Use environment confirmation appeared. Its recording is preserved as `r03-r04-attempt-base.mp4`; it did not reach a new voice attempt.
4. In Settings → Voice, downloaded and selected the same 44 MB English transcription package as the previous round. No provider/runtime selection identifiers are exposed in the recordings. Returned to the thread with an empty draft.

## Installed-package attempt, identical driver on both commits

1. Start a native whole-surface recording.
2. Press the text-view to focus the software keyboard; `type 'Draft'`.
3. Press `label="Start dictation"`; immediately `type ' plus more'`.
4. Both suffix commands fail with `TEXT_INPUT_NOT_FOCUSED: No focused text input was available for typing.`
5. Both snapshots show “Could not start voice recording.” The native editor still contains exactly `Draft`.
6. Press Dismiss voice input error, then Send. Both send exactly `Draft` and clear the composer. The deterministic fixture responds; no external agent/model runs.
7. Stop recording; obtain two pixel-identical final screenshots separated by at least 500 ms.

Head reused the same downloaded speech package in its own isolated backend via the previous round's configure scripts. Its app destination was explicitly selected as fs-30 → Use environment before the active attempt. Microphone permission persisted in the same installed client.

**cannot-verify ios-device: R03.** No suffix was accepted or dropped, no actual draft/native divergence was produced, and there is no base/head native reproduction of the changed branch. The explicit unit red/green transcript forces that state in a mock native view; it is not native proof.

**R04 partial.** Preparing is visible in the base permission clip; both active clips show the recording-start error, error dismissal/unlock, Send and reset. Steady Recording, Transcribing, Cancel and Finish are `cannot-verify ios-device` because recording could not start. No audio/Scribble injection or native dictation race was manufactured.

Approximate playback marks in the installed-package clips: base ~3.9s `Draft`, ~5.9–10s recording error, ~11.8s dismissed, ~13.7s sent, ~17.6s completed fixture response and empty composer; head ~4.8s `Draft`, ~6.4–11.2s recording error, ~12.8s dismissed, ~14.4s sent/cleared. Tool command timings are wall-clock timestamps and differ from simulator video presentation timestamps; these are behavior captures, not latency measurements.
