TUI resize-reflow truncates a single long user message in the main chat view
Nobody has claimed this yet.
- 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_transcriptaction) displays the complete message. - The main chat view displays only part of the same message.
- The problem persists with both
tui.alternate_screen = "never"andtui.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?
- Run Codex CLI 0.149.1 in iTerm2 3.6.11 on macOS, without tmux/zellij.
- Use the following TUI configuration:
[features]
terminal_resize_reflow = true
[tui]
alternate_screen = "never"
raw_output_mode = true
- Start or resume a sufficiently long session.
- Submit one long multi-line user message, for example a numbered list containing several detailed questions.
- Inspect that message in the main TUI chat view.
- 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 = truealso does not fix it.- No thread ID, session transcript, local paths, or credentials are included in this public report.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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