Skip to content

fix(shell): isolate child processes from Crush's session#3097

Open
taciturnaxolotl wants to merge 1 commit into
mainfrom
process-isolation
Open

fix(shell): isolate child processes from Crush's session#3097
taciturnaxolotl wants to merge 1 commit into
mainfrom
process-isolation

Conversation

@taciturnaxolotl

Copy link
Copy Markdown
Member

Child processes spawned by the shell interpreter shared Crush's session, allowing shells like zsh to grab the TTY for job control. This caused "suspended (tty input)" hangs and corrupted Bubble Tea's rendering via unexpected escape sequences. Replace mvdan's DefaultExecHandler with a process-isolated variant that sets Setsid on Unix, and target signals at the child's process group so grandchildren are cleaned up on cancellation.

you can test this by running an interactive program with zsh interactive mode:

zsh -i -c 'crush'

terminal

Child processes spawned by the shell interpreter shared Crush's session,
allowing shells like zsh to grab the TTY for job control. This caused
"suspended (tty input)" hangs and corrupted Bubble Tea's rendering via
unexpected escape sequences. Replace mvdan's DefaultExecHandler with a
process-isolated variant that sets Setsid on Unix, and target signals at
the child's process group so grandchildren are cleaned up on cancellation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant