openai / openai/codex

Codex app queues terminal invisibly and duplicates composer keystrokes

Open
#46,059 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug tool-calls
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using?

ChatGPT/Codex desktop app 26.908.70816 (build 9275); bundled codex-cli 0.154.0-alpha.6.2.

What subscription do you have?

Signed-in paid ChatGPT account; exact plan not shown in the affected surface.

What platform is your computer?

Darwin 27.0.0 arm64 arm

What issue are you seeing?

Two symptoms appear related and have occurred repeatedly:

  1. An agent starts a PTY-backed command and asks the Codex app to show that terminal session in the current task. The UI operation reports the terminal as queued, but no terminal session appears in the visible integrated terminal. The agent can mistakenly believe the user can see a password prompt even though the user's terminal remains at an empty shell prompt.
  2. Around the same occurrences, keyboard input in the message composer is duplicated, so text appears with most characters entered twice (for example, terminal resembles tteerrmmiinnaall).

In the latest occurrence, the hidden PTY was waiting for a sudo password. The visible integrated terminal remained at a blank zsh prompt. The hidden session was then cancelled and exited because no password had been entered. The duplicated composer input continued long enough for the user to report the correlation.

This is especially confusing because the agent and user have contradictory views of which terminal is active. It also makes the composer difficult to use.

What steps can reproduce the bug?
  1. Open a local Codex task in the desktop app with its integrated terminal panel available.
  2. Have the agent start an interactive PTY command that waits for input, such as a command that invokes sudo.
  3. Have the agent call the app's terminal-opening action for that PTY session in the current task.
  4. Observe that the terminal-opening result can be queued even though the current task is already visible.
  5. Observe that the visible integrated terminal remains at its existing empty shell prompt rather than displaying the PTY and its password prompt.
  6. Type in the task's message composer. In the affected state, characters are entered twice.

The user reports this has happened more than once when the agent believed it had opened the user-visible terminal but had actually created or targeted a separate hidden terminal session.

What is the expected behavior?
  • Opening a PTY in the current visible task should display that exact session in the integrated terminal, or return a clear failure that the agent can accurately relay.
  • A terminal session must not remain invisibly queued in a way that suggests it is user-visible.
  • Keyboard input in the composer should produce exactly one character per keystroke.
Additional information

The visible terminal state was independently read back and confirmed to contain only the normal zsh prompt. No repository data, phone identifiers, passwords, logs, or other secrets are included in this report.

The official terminal recovery advice (close/reopen the terminal panel, then restart the app if needed) may restore the UI, but recovery was not yet verified at the time of filing.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in the Codex desktop app on Darwin 27.0.0 arm64, using the integrated terminal, a PTY command such as sudo, and the message composer. Trace the app's terminal-opening action and composer input handling. Done means the exact PTY is visible or a clear failure is returned, and each keystroke produces one character.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.