New user prompt disappears after opening a subagent from message history in Ultra multi-agent mode

Open 💬 2 comments Opened Jul 13, 2026 by itmada

What version of the Codex App are you using (From “About Codex” dialog)?

Codex Desktop app version not captured. I can provide it if needed.

What subscription do you have?

Not provided.

What platform is your computer?

macOS on Apple Silicon (arm64).

What issue are you seeing?

In Ultra reasoning mode with multi-agent collaboration enabled, a newly submitted user guidance message can disappear from the main conversation view after opening a subagent from a historical message.

This occurs while the main task and its subagents are still actively running: I type a guidance message in the main composer and press Enter to send it. The message initially appears in the main conversation, then disappears after the navigation action below.

The issue is specific to the navigation path:

  • After pressing Enter to send a new guidance message during active execution, clicking a subagent reference in an older/historical message opens that agent in the sidebar and causes the newly sent user message to disappear from the main transcript.
  • Opening the same subagent directly from the sidebar does not cause the newly sent user message to disappear.

This makes the main conversation UI unreliable during multi-agent work. It is unclear from the UI whether the prompt merely became hidden or whether it was also lost from the active task context.

What steps can reproduce the bug?

  1. Start a Codex Desktop task with Ultra reasoning and multi-agent collaboration enabled.
  2. Let the task create at least one subagent, and keep the main task/subagents running.
  3. While execution is still in progress, type a new user guidance message in the main composer and press Enter to send it.
  4. Confirm that the newly sent user message appears in the main message area.
  5. In an older/historical message, click the referenced subagent so that the subagent opens in the sidebar.
  6. Observe that the user guidance message sent in step 3 disappears from the main conversation area.
  7. Repeat the test, but open the same subagent directly from the sidebar instead of from the historical message.

What is the expected behavior?

Opening a subagent from either a historical message or the sidebar should not remove or hide any already-sent user message from the main conversation transcript.

Both navigation paths should preserve the same conversation state, including the most recently submitted guidance message.

Additional information

  • The issue was observed specifically during Ultra-mode multi-agent collaboration.
  • The direct-sidebar path acts as a control case: it opens the agent without causing the newly sent user message to disappear.
  • No sensitive prompts, task IDs, repository paths, or logs are included in this report.

View original on GitHub ↗

2 Comments

hyposomnia · 1 month ago

I can confirm this bug and add a deterministic root-cause finding.

Environment:

  • Codex Desktop 26.707.62119 (5211)
  • macOS on Apple Silicon (arm64)
  • The currently staged 26.707.72221 (5307) bundle contains the same affected code path.

This is not limited to opening a subagent from a historical message. I can also reproduce it by opening a subagent detail panel, returning to the parent, and entering the detail again while the parent turn is still running.

The sequence is:

  1. Send an immediate in-run follow-up/steering message in the parent task.
  2. The user bubble appears normally and the agent receives and responds to it.
  3. Open a subagent detail, return, and re-enter or otherwise trigger parent-history reconstruction.
  4. The parent user bubble disappears, while the subsequent agent response remains visible.

The message is not lost. The parent rollout still contains it as both:

  • a response_item with role: "user"; and
  • an event_msg with type: "user_message".

Inspection of the installed renderer bundle shows that the live message is represented as a visible steeringUserMessage. After navigation, the parent transcript is rebuilt from server history with:

preserveServerUserMessages: false

The converter then changes the persisted mid-turn userMessage into a steered marker. Once the optimistic steeringUserMessage is gone, no visible user bubble remains.

A likely fix is to preserve server user messages when building visible local-conversation turns, or at least avoid converting a non-duplicate server userMessage into an invisible marker. The converter already has optimistic/server deduplication logic.

Suggested regression coverage:

  1. An in-run follow-up is visible in live state.
  2. It remains visible after thread/read hydration.
  3. Opening and closing a subagent detail does not change the parent user-message count.
  4. A matching optimistic/server pair renders exactly once.
  5. A persisted server message still renders when no optimistic copy remains.

This has significant impact on long-running agent and subagent workflows. Immediate steering becomes increasingly common as turns grow longer; hiding the user's instruction while retaining the response breaks the visible causal chain and makes the conversation difficult to understand or audit.

Pangshunyao-0v0 · 8 days ago

I can reproduce this on the current Windows Codex Desktop build.

Environment:

  • Codex Desktop Store package: 26.818.2441.0
  • Executable file/product version: 151.0.7922.170
  • Platform: Microsoft Windows NT 10.0.26200.0 x64
  • Multi-agent parent with three active subagents

Observed sequence:

  1. Keep the parent task running and send follow-up guidance.
  2. Click a subagent activity chip embedded in the parent message history.
  3. Inspect the child and navigate back to the parent.
  4. The parent rehydrates to a much older visible context. Recent guidance/progress disappears from the transcript, and subsequent input can attach to stale overlapping parent turns.

In this reproduction, local thread inspection showed multiple parent turns remaining inProgress at the same time after the navigation sequence. This makes the symptom more severe than a single hidden bubble: the visible parent state and active-turn ownership appear desynchronized.

Control/workaround:

  • Returning to the pinned parent task directly from the sidebar is more reliable than using Back.
  • Avoiding the activity chips while the parent turn is active also avoids the issue.

Expected:

  • Opening and closing a subagent detail must restore the latest parent turn and preserve all already-sent guidance.
  • Exactly one authoritative active parent turn should own new input after navigation.

No repository paths, task identifiers, prompts, screenshots, or private logs are included. I can provide sanitized diagnostics if maintainers specify what fields are useful.