fix(core): drain stdin on exit to prevent escape sequence leakage#34134
Merged
FrozenPandaz merged 2 commits intomasterfrom Jan 17, 2026
Merged
fix(core): drain stdin on exit to prevent escape sequence leakage#34134FrozenPandaz merged 2 commits intomasterfrom
FrozenPandaz merged 2 commits intomasterfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
✅ Deploy Preview for nx-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
|
View your CI Pipeline Execution ↗ for commit 3fa9ba2
☁️ Nx Cloud last updated this comment at |
8e2fabe to
6e8fb93
Compare
AgentEnder
approved these changes
Jan 16, 2026
When the TUI queries terminal background color via OSC 11, the terminal responds with an escape sequence. If the program exits (especially via Ctrl+C) before fully consuming this response, the escape sequence leaks to the terminal output, showing characters like: ^[]11;rgb:2121/2121/2121^[\^[[55;1R This fix adds drain_stdin() which polls and consumes any pending terminal events before disabling raw mode, preventing the leakage.
…l size - Add drain_stdin() to consume pending terminal responses (OSC color queries) before TUI exit, preventing escape sequences from leaking to terminal - Disable TUI when terminal reports 0x0 size to prevent vt100 parser panics - Add graceful fallback for inline terminal creation errors
Contributor
|
This pull request has already been merged/closed. If you experience issues related to these changes, please open a new issue referencing this pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Current Behavior
When exiting the TUI (especially via Ctrl+C), escape sequences leak to the terminal:
This happens because the TUI queries terminal background color via OSC 11 to detect dark/light mode. The terminal responds with an escape sequence, but if the program exits before fully consuming the response, it appears in the terminal output.
Expected Behavior
Clean terminal state after TUI exits, with no escape sequence artifacts.
Related Issue(s)
N/A - discovered during development
Solution
Added
drain_stdin()function that polls and consumes any pending terminal events before disabling raw mode. This clears any lingering OSC responses (like the background color query response) before the terminal is restored.The 5ms timeout is long enough to catch pending responses but short enough not to noticeably delay exit.