Skip to content

[codex] fix Windows ConPTY input handling - #29734

Merged
iceweasel-oai merged 2 commits into
mainfrom
codex/windows-conpty-input
Jun 24, 2026
Merged

[codex] fix Windows ConPTY input handling#29734
iceweasel-oai merged 2 commits into
mainfrom
codex/windows-conpty-input

Conversation

@iceweasel-oai

@iceweasel-oai iceweasel-oai commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Why

Windows unified-exec TTY input did not behave like the non-Windows PTY path. ConPTY sessions could receive the wrong line ending or mishandle backspace, especially when sending input to a foreground program through PowerShell or cmd. The local, legacy restricted, and elevated paths also handled this normalization separately.

What changed

  • share one stateful Windows TTY input normalizer across local, legacy restricted, and elevated runner paths
  • translate LF and split CRLF into one Windows terminal Enter, encode backspace as DEL, and preserve UTF-8 and control bytes such as Ctrl-C
  • add Windows integration coverage for Unicode input, backspace, Enter, and PowerShell foreground-child Ctrl-C behavior

Validation

  • just test -p codex-utils-pty (13 tests passed; the Unicode integration test retried once)
  • the Unicode integration test passed five consecutive runs with retries disabled
  • integration coverage sends cafeé 漢字 through cmd and PowerShell and verifies that Ctrl-C interrupts a running PowerShell foreground child

@iceweasel-oai
iceweasel-oai marked this pull request as ready for review June 24, 2026 17:04
@iceweasel-oai
iceweasel-oai requested a review from jif-oai June 24, 2026 18:02
@iceweasel-oai
iceweasel-oai merged commit a781761 into main Jun 24, 2026
31 checks passed
@iceweasel-oai
iceweasel-oai deleted the codex/windows-conpty-input branch June 24, 2026 18:27
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 24, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants