Voice task becomes trapped when a plugin approval dialog appears
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
In a voice-first Codex desktop session, the task became trapped when a plugin-install approval was required. The voice frontend repeatedly said it was checking, but did not announce the pending approval, identify the required control, ask for the missing decision, or return with a clear blocker. Repeated voice prompts did not recover the task, and the app had to be restarted.
This is accessibility-critical for blind users because the approval UI is not independently visible.
Reproduction
- Start a realtime voice conversation in the Codex desktop app on macOS.
- Begin a workflow that eventually requests installation of a plugin.
- Verbally approve the installation.
- Allow the task to enter the plugin approval state.
Observed behavior
- The affected task remained active with
waitingOnApproval. - Voice repeatedly used progress language such as “I’m checking.”
- Voice did not announce that an approval dialog or pending approval existed.
- Voice did not identify the relevant buttons, current focus, or exact action required.
- Voice did not time out with a concrete blocker.
- Repeated voice prompts could wake the assistant, but it remained nonproductive.
- The user ultimately restarted the app.
The issue occurred immediately after the user verbally authorized installation of the Runway plugin during a talking-avatar workflow. Work completed before that point was preserved; the approval-state turn remained unfinished.
Expected accessible behavior
When a task is waiting for approval during realtime voice:
- Immediately announce that an approval is pending.
- State what is being approved and why.
- Announce every relevant button and the currently focused control.
- Tell the user the exact keyboard or spoken action required.
- If the UI cannot be controlled or verified, stop repeating progress phrases and state the blocker plainly.
- Re-announce the pending approval when the user asks for status.
- Provide a deterministic cancellation or recovery path that does not require restarting the app.
Accessibility impact
The reporter is a blind, voice-first developer working on computer interfaces for blind users. For a sighted user, the pending approval may be visually obvious; for a blind user relying on spoken state, the task appears to be working indefinitely. This makes approval-gated workflows unreliable and can strand the entire voice session.
The reporter is willing to provide systematic, real-world blind-accessibility testing and reproducible bug reports if OpenAI is interested. Please contact the reporter through this GitHub issue rather than requiring an email address to be posted publicly.
Privacy
The underlying workflow used a private face-and-voice recording, but that recording is unrelated to the bug and is not attached. No passwords, credentials, private media, or unrelated personal content are included in this report.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the approval flow in a realtime voice conversation on macOS, then trace the handling of the reported waitingOnApproval state in the Codex desktop app. Check how pending approval, focus, available actions, status requests, timeout, cancellation, and recovery are exposed to voice. Done means the task announces the blocker and required action, re-announces it on request, and recovers without an app restart.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust
- Domain
- accessibility, desktop
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100