openai / openai/codex

[Windows] Ctrl+T transcript view corrupts soft-wrapped CJK/Latin text after scrolling

Open
#38,002 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI TUI windows-os
Dominant language
Rust
Stars
125k
Forks
19.5k
PR merge metrics
PR metrics pending

Description

What version of Codex CLI is running?

codex-cli 0.147.0

Installed through npm on native Windows.

What platform is your computer?

  • Windows build: 10.0.22631 (Windows 11 Professional)
  • Shell: PowerShell
  • Codex install method: npm

What terminal emulator and version are you using?

Windows Terminal 1.12.10983.0 at the time of reproduction.

Windows Terminal has since been upgraded to 1.24.11911.0, but the new version has not yet been retested because all existing Terminal processes must be restarted first. I will update this issue after retesting.

What issue are you seeing?

The built-in Ctrl+T transcript view intermittently corrupts displayed text after scrolling with Page Up or the Up arrow.

Characters from a soft-wrapped second visual line appear to be redrawn at incorrect columns on the preceding line. The visible result includes overlapping glyphs, stray residual characters, and malformed Latin words. It is especially noticeable around boundaries between:

  • Chinese/CJK text and Latin text
  • inline code and normal prose
  • links and surrounding prose
  • soft-wrapped visual lines

The underlying assistant response is correct. The corruption appears only in the rendered transcript view, which suggests a TUI redraw/reflow problem rather than damaged conversation data.

Examples visible in the affected screen included stray glyphs before Windows Terminal, corrupted rendering inside alternate-screen, and overlapping characters in OpenAI.

What steps can reproduce the bug?

  1. Start Codex CLI in Windows Terminal on native Windows.
  2. Open a conversation containing mixed Chinese/CJK text, Latin text, inline code, links, and lines long enough to soft-wrap.
  3. Press Ctrl+T to open the transcript view.
  4. Scroll upward using Page Up or the Up arrow.
  5. Continue scrolling through wrapped paragraphs.
  6. Observe that some glyphs from the second visual line are drawn over or inserted into the preceding line.

The problem is intermittent, but it has occurred multiple times during transcript browsing.

What is the expected behavior?

Scrolling in the Ctrl+T transcript view should preserve the exact text, glyph positions, styles, and soft-wrap boundaries. Previously rendered lines should not be overwritten by neighboring lines.

What happens instead?

The viewport is visually corrupted after scrolling: characters overlap, residual glyphs appear in the wrong line, and some Latin words become malformed. The persisted conversation content remains correct.

Additional information

This appears related to #13686, but this report provides a more specific trigger involving the Ctrl+T transcript view, keyboard scrolling, soft wrapping, and mixed CJK/Latin styled content.

A screenshot of the corrupted viewport is available and will be added in a follow-up comment.

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

No implementation file or test is named. Reproduce on native Windows in Windows Terminal by opening Ctrl+T, then scrolling through mixed CJK/Latin, styled, soft-wrapped content; trace the transcript viewport redraw or reflow path. Done means scrolling preserves text, glyph positions, styles, and soft-wrap boundaries without overlap or residual characters.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.