What happened
Observed live on hardware (Android, Xiaomi 2109119DG) during E2EE program G-2 device testing, 2026-09-04, reproduced independently on two different agent providers.
When a session's underlying agent process (claude or codex) opens with a plain terminal select-menu prompt — e.g. Claude Code's own "Select login method" picker, or Codex's "Sign in with ChatGPT / Device Code / API key" picker — the app correctly detects that a prompt is open and blocks free-text input with:
A prompt is waiting for an answer; answer or dismiss it before sending text
But no answer affordance is ever surfaced: no prompt card, no tappable options, the "Live control" tab is not clickable, and tapping the terminal output area does not reveal an arrow-key/keyboard toolbar. The composer stays permanently locked with no way to answer the detected prompt, other than killing the session.
Reproduction
- Pair to any streamer, open a project, start a session using an agent binary whose first-run flow shows a plain terminal
1. Option A / 2. Option B / 3. Option C style select menu (Claude Code's login-method picker or Codex's sign-in picker both trigger it).
- Observe the app enters "Waiting" state and the composer is blocked with the "A prompt is waiting for an answer" message.
- Try: tapping "Live control" tab (not clickable), tapping the "N prompts" badge in the header, tapping directly on the numbered option text in the terminal output, tapping into the terminal pane itself. None surface an answer UI.
- Only recourse observed: kill the session and start a new one (which, if it hits the same picker, repeats the dead end).
Why this matters
Any agent that asks an ordinary terminal question this way — not just first-run login pickers — hits this dead end. It happened identically on two different agent providers (Claude, Codex), so it's not provider-specific; it's the mobile client's prompt-detection/answer-affordance logic.
Suggested investigation starting points
- Wherever the client's prompt/pending-question detector decides a prompt is "open" and blocks the composer — find out why it doesn't also recognize this shape of prompt (a plain numbered select-menu with no structured question/permission schema from the server) as something needing a rendered answer UI.
- Check whether the detector only renders an answer card for prompts carrying a structured
questions/options payload from the server-side prompt registry, and falls back to "just refuse text, offer nothing" for anything else it flags as prompt-like (e.g. text matching \d+\.\s menu patterns) — that would explain the total absence of an affordance rather than a broken one.
- A minimal fix might be: if no structured answer UI can be rendered for a detected prompt, still expose a raw-keystroke/arrow-key fallback (not just Escape) so the user can navigate a plain terminal menu, rather than leaving the composer in a dead end with zero paths forward.
Related
What happened
Observed live on hardware (Android, Xiaomi 2109119DG) during E2EE program G-2 device testing, 2026-09-04, reproduced independently on two different agent providers.
When a session's underlying agent process (
claudeorcodex) opens with a plain terminal select-menu prompt — e.g. Claude Code's own "Select login method" picker, or Codex's "Sign in with ChatGPT / Device Code / API key" picker — the app correctly detects that a prompt is open and blocks free-text input with:But no answer affordance is ever surfaced: no prompt card, no tappable options, the "Live control" tab is not clickable, and tapping the terminal output area does not reveal an arrow-key/keyboard toolbar. The composer stays permanently locked with no way to answer the detected prompt, other than killing the session.
Reproduction
1. Option A / 2. Option B / 3. Option Cstyle select menu (Claude Code's login-method picker or Codex's sign-in picker both trigger it).Why this matters
Any agent that asks an ordinary terminal question this way — not just first-run login pickers — hits this dead end. It happened identically on two different agent providers (Claude, Codex), so it's not provider-specific; it's the mobile client's prompt-detection/answer-affordance logic.
Suggested investigation starting points
questions/optionspayload from the server-side prompt registry, and falls back to "just refuse text, offer nothing" for anything else it flags as prompt-like (e.g. text matching\d+\.\smenu patterns) — that would explain the total absence of an affordance rather than a broken one.Related