-
Notifications
You must be signed in to change notification settings - Fork 2.6k
fix(core): pipe plugin stdout to avoid inconsistent terminal state #33369
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
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. |
|
View your CI Pipeline Execution ↗ for commit df57c60
☁️ Nx Cloud last updated this comment at |
06bd7be to
dd390c6
Compare
dd390c6 to
21a11a7
Compare
21a11a7 to
b55e2cc
Compare
b55e2cc to
f8b6c14
Compare
f8b6c14 to
c6bde52
Compare
…elf-Healing CI Rerun]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nx Cloud has identified a flaky task in your failed CI:
🔂 Since the failure was identified as flaky, we reran your CI automatically.
🎓 Learn more about Self-Healing CI on nx.dev
Current Behavior
After running commands which spawn plugin workers on the main process (
nx show project, or any command with the daemon disabled) some users (and notably @FrozenPandaz) experienced terminal issues that resulted in ↑ / ↓ printing escape codes instead of scrolling command history.Expected Behavior
This pull request updates how plugin worker processes handle their input/output streams to improve terminal behavior and debugging capabilities. The main change is switching the worker's stdio from
inherittopipe, and then manually piping the worker's stdout and stderr to the main process. This avoids terminal state issues and enables better debugging.Plugin worker process I/O handling:
stdiooption from'inherit'to'pipe'instartPluginWorker, preventing terminal state issues (such as broken arrow key functionality) after Nx execution.stdoutandstderrto the main process, making it easier to debug and allowing plugins to communicate metrics. Increased the max listener count onprocess.stdoutandprocess.stderrto avoid warnings from multiple listeners.Related Issue(s)
Fixes #