Repository navigation
fix: simplify iOS recording to a native start/stop button - #2595
Merged
Merged
Conversation
Issue: #2594 Agent-Task: codex/local/01a1621c-a81b-7670-86be-1ddaf404c2e2
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
⛔ Files ignored due to path filters: 1
📒 Files selected for processing: 8
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Oct 22, 2026
DoodleBears
marked this pull request as ready for review
October 22, 2026 12:26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue #2594 | Agent claim | Previous repair #2592
Why the change
The iOS microphone is offset and its manual gesture still never reaches speech startup in Batch55, so this change replaces it with a centered native start/stop button.
Special things to note
914bfa57ed04807dc3f94a1ed6a4e678da898591. No release/deployment authorization.audio-capturefailure; Stop/Cancel and sustained recording remain unverified. See the real failure and composer screenshots below. Root cause, matched full-matrix evidence and assistive checks remain open.Change outline
Batch56 — native startup reached; recording still fails
Latest native follow-up on candidate
914bfa57ed048containing merged #2595, not a rerun of the earlier gesture-only heads. iOS 27 Simulator, English, signed Debug binary55de08577ac5, strict native fingerprintb3e74315f0c2; full identities and image hashes are in the provenance report.FAIL: sustained recording. The centered button now reaches speech startup, but the native task ends immediately; root cause remains undetermined. An uninstrumented real tap reaches the same failure UI. Valid v2 observations stayed current and fully restored. Initial Batch56 traces from the withdrawn v1 observer were contaminated by Hermes eval loop-closure binding and are excluded. No Simulator-wide limitation is inferred from the remaining failure.
Actual candidate failure — light,
large, 402 × 874, software keyboard absent. The microphone is centered. This is not a successful Listening state or a matched failure-state Before/After pair; the earlier Batch55 baseline above/below retains its own source, fixture and missing-start result.Scoped interaction result: a synthetic three-line draft survived expand/done, attachment-tray open/close and six theme/text-size changes, then was sent once with exact canonical Host text and a real direct DeepSeek reply 42. The software keyboard did not appear, so keyboard avoidance is UNTESTED. Later draft lines are visible in the larger-text fields; full editing, caret and scroll acceptance is not inferred.
Six candidate draft captures — keyboard absent; no matched Batch56 Before matrix
Light:
large,accessibility-large,accessibility-extra-extra-extra-large, respectively.Dark: the same three OS text sizes, respectively.
Still unaccepted: stable Listening, second-tap Stop, explicit Cancel, recording interruption/retry, keyboard clearance, full matched Before/After, physical microphone, VoiceOver and Android. The bounded exact-app-PID native log read parsed 1003 records but yielded no allowlisted error facts; that does not locate the native cause. New source repairs, if required, need their own branch/PR and a new owner-cut test batch. No product source change or new merge/release authorization is implied by this evidence update.
Evidence follow-up:
t3code/local/mcp:dbfb1c61-ea88-4449-82fe-bce3ae129811, successor claim. Earlier Batch54/55 reports below remain historical and retain their stated limits.The existing speech controller still owns permission, recognition events, stop, abort and draft updates; the leading Cancel action stays available while starting/listening. No model, Host or recording backend change.
Source verification: CI39777816235 all applicable checks pass; 52 focused tests pass across native button/speech-owner integration, composer dictation, state transitions, iOS chrome, style and system-text guards. Mobile typecheck, repository lint (existing warnings), change-ledger/feature-map checks, changed-file formatting and diff checks pass. Mocked native boundaries do not prove touch dispatch or pixel geometry.
Before — Batch55 native failure, light, 402 × 874, large text, keyboard hidden
Actual tap and 800ms hold left the microphone idle and visibly offset. The installed/current callback observer saw onHeld/finalize only; no onStart or native preflight/events. Both observers restored. Loaded Hermes includes #2592. Source
87724a3b58d5, strict native fingerprintb3e74315f0c2, signed Debug executable55de08577ac5. Full provenance.Capture status superseded by Batch56 above. The earlier shared-lane blocker is resolved. Further verification must use a newly assigned owner cut; no successful Listening/Stop/Cancel image is available because the valid native trials end immediately.
Task:
codex/local/01a1621c-a81b-7670-86be-1ddaf404c2e2. Refs #2594; acceptance remains open until native verification.