openai / openai/codex

TUI resize-reflow truncates a single long user message in the main chat view

Open
#40,345 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI TUI
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of Codex CLI is running?

0.149.1

What subscription do you have?

Pro

Which model were you using?

gpt-5.6-sol

What platform is your computer?

Darwin 24.6.0 arm64; macOS 15.7.7

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

iTerm2 3.6.11; no tmux, screen, or zellij; terminal size 80x24

Codex doctor report
{
  "schemaVersion": 1,
  "overallStatus": "fail (unrelated HTTP reachability timeout; WebSocket handshake succeeds)",
  "codexVersion": "0.149.1",
  "installation": "Homebrew, current version is latest",
  "configLoad": "ok",
  "relevantFeatures": ["terminal_resize_reflow"],
  "threadStateParity": "ok",
  "terminal": {
    "name": "iTerm2",
    "version": "3.6.11",
    "size": "80x24",
    "multiplexer": "none"
  },
  "platform": "macOS 15.7.7, arm64"
}
What issue are you seeing?

Summary

In a long Codex CLI session, a single long multi-line user message is split/truncated in the main TUI chat view. The complete message is only visible after pressing Ctrl+T to open the full transcript.

This is a display/materialization issue rather than session data loss:

  • The user message is stored completely in the session JSONL.
  • Ctrl+T (the open_transcript action) displays the complete message.
  • The main chat view displays only part of the same message.
  • The problem persists with both tui.alternate_screen = "never" and tui.raw_output_mode = true.
  • It is not caused by automatic context compaction.

The installed binary contains the relevant TUI component path tui/src/app/resize_reflow.rs and the text Earlier messages are available ... to view the full transcript, so this appears related to resize-reflow paginated history/materialization.

Impact

The main transcript can visually change or omit part of a user prompt. This makes it difficult to verify what was submitted and can look like prompt/session corruption even though the stored transcript remains intact.

Workaround

Press Ctrl+T and inspect the full transcript pager.

What steps can reproduce the bug?
  1. Run Codex CLI 0.149.1 in iTerm2 3.6.11 on macOS, without tmux/zellij.
  2. Use the following TUI configuration:
[features]
terminal_resize_reflow = true

[tui]
alternate_screen = "never"
raw_output_mode = true
  1. Start or resume a sufficiently long session.
  2. Submit one long multi-line user message, for example a numbered list containing several detailed questions.
  3. Inspect that message in the main TUI chat view.
  4. Press Ctrl+T to open the full transcript.

Observed:

  • The main chat view shows only part of the single user message or splits it at the history materialization boundary.
  • Ctrl+T shows the full message.
  • The persisted session JSONL contains the full original message.

The issue reproduced after disabling alternate-screen mode, so iTerm scrollback capacity is not the cause.

What is the expected behavior?

A single user message should be rendered completely in the main chat view.

If the main TUI intentionally limits materialized history for resize performance, it should not silently split a single message. It should either:

  • keep the complete message as one atomic transcript entry, or
  • show an explicit collapsed placeholder with an expand/open-transcript action.

The main view and Ctrl+T transcript should not appear to disagree about the content of the submitted prompt.

Additional information

Additional diagnostics

  • Codex CLI: 0.149.1
  • Install method: Homebrew
  • Platform: Darwin 24.6.0, arm64; macOS 15.7.7
  • Terminal: iTerm2 3.6.11, 80x24
  • Multiplexer: none
  • Model: gpt-5.6-sol
  • Auth: ChatGPT
  • Subscription: Pro
  • codex doctor --json: configuration, installation, thread-state parity, and WebSocket checks pass. The overall doctor status is only failed because one HTTP provider reachability check timed out; the active WebSocket handshake succeeds.
  • alternate_screen = "never" fixes normal terminal scrollback isolation but does not fix this single-message truncation.
  • raw_output_mode = true also does not fix it.
  • No thread ID, session transcript, local paths, or credentials are included in this public report.

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 in tui/src/app/resize_reflow.rs and reproduce the issue with terminal_resize_reflow enabled, using the supplied TUI settings and a long multi-line message. Compare the main chat view with the Ctrl+T open_transcript output; done means the main view keeps the message complete or presents an explicit collapsed placeholder without disagreeing with the full transcript.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.