TUI resize-reflow truncates a single long user message in the main chat view
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.