You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] block() function leaves stdin in raw mode on Windows, breaking Ctrl+C signal handling #408
After calling spinner.stop(), stdin remains in raw mode on Windows, preventing Ctrl+C from generating SIGINT signals. This breaks signal handling for any code that runs after the spinner stops.
The root cause is in the block() function's cleanup code, which intentionally skips restoring raw mode on Windows to prevent issue #176:
// From clack source - block() cleanupif(inputinstanceofReadStream&&input.isTTY&&!isWindows){input.setRawMode(false);}
This leaves stdin stuck in raw mode on Windows. In raw mode, Ctrl+C sends raw keypress data instead of generating SIGINT signals, so signal handlers never fire.
Activity
dreyfus92 commentedon Nov 29, 2025
hey @christopher-buss! i've submitted a PR that potentially fixes this issue. would mind testing it to check if this resolves your issue?
fix(deps): patch @clack/core to restore stdin raw mode on Windows
Fix installer prompts unresponsive on Windows after spinner
fix(cli): monkey-patch @clack/core Prompt.close to fix Windows TTY fr…
fix(cli): defer clack rl.close + flush stdin to fix Windows Escape fr…
feat(cli): interactive TUI + Windows freeze fix + timing precision (#29)