Skip to content

TUI mixes queued follow-ups with removed steer state, causing "pending steer" leakage and delayed execution #13892

@Proview-China

Description

@Proview-China

What version of Codex is running?

codex-cli 0.111.0

Which model were you using?

gpt-5.4 high

What platform is your computer?

Ubuntu 25.10 x86_64

What issue are you seeing?

The TUI appears to mix queued follow-up messages with the old/removed steer state.

Observed behavior:

  • While Codex is still working on one prompt, I queue a follow-up message.
  • The UI sometimes shows pending steer: ... even though this is just a queued follow-up.
  • The queued message may appear to be accepted, then sit there doing nothing with no clear state, and later suddenly starts executing.
  • In some cases, the TUI leaks internal intermediate text/state into the chat UI.
  • This makes it unclear whether the message is queued, steering the active turn, ignored, or stuck.

This feels like a TUI / state-management bug rather than just a model issue.

What steps can reproduce the bug?

  1. Start codex in the terminal.
  2. Send a normal prompt, for example: 你好!
  3. While Codex is still responding, submit another short follow-up, for example: 你是?
  4. Observe that the UI may show pending steer: 你是?
  5. In some runs, the follow-up then appears stuck for a while, and later suddenly starts running.
  6. In some runs, internal intermediate text/status is rendered in the chat UI.

I have seen all of the following variants:

  • pending steer: ... appears for a queued follow-up
  • the queued follow-up is received but appears idle/frozen
  • the queued follow-up later starts unexpectedly
  • internal intermediate text leaks into the visible conversation

What is the expected behavior?

  • If a message is queued, the UI should clearly present it as queued.
  • If steer is not active/available, the UI should never show pending steer.
  • A queued follow-up should either start deterministically after the current turn finishes, or clearly show why it is blocked.
  • Internal intermediate text/state should never be rendered in the visible chat conversation.

What do you see instead?

  • pending steer: ... shown for a queued follow-up
  • queued follow-up appears to do nothing, then starts later without a clear transition
  • internal intermediate text sometimes leaks into the UI

Additional information

I captured multiple screenshots showing:

  • pending steer: 你是?
  • a queued message appearing accepted but not progressing
  • the same message later suddenly executing

This looks especially confusing because steer appears to be a removed feature in this version, but the TUI still surfaces pending steer language/state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions