codex - ✅(Solved) Fix Persist update_plan task list in TUI after assistant response while waiting for user input [1 pull requests, 2 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openai/codex#18920Fetched 2026-04-22 07:50:48
View on GitHub
Comments
2
Participants
3
Timeline
9
Reactions
0
Timeline (top)
labeled ×4commented ×2cross-referenced ×2unlabeled ×1

PR fix notes

PR #18935: Keep TUI status surfaces in sync

Description (problem / solution / changelog)

Problem: PR #15860 added terminal-title refresh paths for runtime state that is also rendered by the footer status line. Those title-only refreshes can leave configured status-line items like run-state and task-progress stale.

Solution: Route shared runtime-state updates through the shared status-surface refresh path, keep update_plan task progress across turns, and reserve terminal-title-only refreshes for title setup and animation.

Changed files

  • codex-rs/tui/src/chatwidget.rs (modified, +4/-6)
RAW_BUFFERClick to expand / collapse

What version of Codex CLI is running?

codex-cli 0.122.0

What subscription do you have?

ChatGPT plan-backed Codex session

Which model were you using?

gpt-5.4

What platform is your computer?

macOS 26.4.1

What terminal emulator and version are you using (if applicable)?

iTerm.app

What issue are you seeing?

The native task list emitted by update_plan is not persistently rendered in the CLI TUI after the assistant sends its response and the session is waiting on the user.

Concretely:

  • the task list appears when update_plan is invoked
  • after the assistant responds, the list can disappear while the session is idle and waiting for user input
  • this makes the task list unusable as a continuously visible operational checklist

This feels like a lifecycle/rendering gap rather than a state gap: the plan state exists, but the renderer is not kept mounted.

What steps can reproduce the bug?

  1. Start a Codex CLI session.
  2. Invoke the native plan/task list via update_plan with multiple items.
  3. Leave one item in_progress so the task list remains active.
  4. Let the assistant send a normal response.
  5. Observe the TUI while the session is waiting for the next user turn.

What is the expected behavior?

If a plan/task list exists, it should remain visible in the TUI while the session is idle and waiting for user input, until one of these happens:

  • the plan is explicitly cleared
  • all items are completed and the user dismisses it
  • the user hides it via an explicit UI control

A weaker but still useful alternative would be an explicit persistence control, for example:

  • a config flag to keep the task list pinned
  • a slash command to show/hide the current task list
  • a statusline or sidebar mode that keeps the current checklist visible across turns

Additional information

Relevant existing issues appear adjacent but not identical:

  • #13932 Preserve Plan (about compaction preserving accepted plans)
  • #16765 TUI wording: use task-list labels instead of "Updated Plan" for update_plan
  • #18488 Retain status line when in plan mode

This request is specifically about keeping the update_plan task list visibly rendered after the assistant has responded and the user turn is pending.

extent analysis

TL;DR

The task list rendered by update_plan may need an explicit persistence control to remain visible in the CLI TUI after the assistant responds and the session is waiting for user input.

Guidance

  • Investigate the possibility of adding a config flag to keep the task list pinned, allowing it to persist across user turns.
  • Consider introducing a slash command to show/hide the current task list, providing users with control over its visibility.
  • Review the rendering lifecycle of the TUI to identify potential gaps that cause the task list to disappear after the assistant's response.
  • Examine the relationship between the task list and the session's state to ensure that the list remains mounted when the session is idle and waiting for user input.

Example

No specific code snippet can be provided without further information on the Codex CLI's internal implementation. However, the solution might involve modifying the rendering logic to include a persistence mechanism, such as a flag or a command, to control the task list's visibility.

Notes

The issue seems to be related to the rendering and lifecycle management of the TUI, rather than a state management problem. The solution will likely involve changes to the Codex CLI's internal logic and rendering mechanisms.

Recommendation

Apply a workaround, such as introducing an explicit persistence control (e.g., a config flag or a slash command), to keep the task list visible until a more permanent fix can be implemented. This will provide users with a usable workaround while the underlying issue is being addressed.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

codex - ✅(Solved) Fix Persist update_plan task list in TUI after assistant response while waiting for user input [1 pull requests, 2 comments, 3 participants]