fix(tui): drain stdin on exit to avoid Kitty release leak

Drain stdin for up to 1s after disabling Kitty protocol so in-flight key
release events are consumed before the shell regains control.

Fixes #1204
This commit is contained in:
Mario Zechner 2026-02-03 00:07:35 +01:00
parent 9a4d043b28
commit 8c38de0495
5 changed files with 42 additions and 22 deletions

View file

@ -4,7 +4,7 @@
### Fixed
- Fixed Kitty key release events leaking to parent shell over slow SSH connections ([#1204](https://github.com/badlogic/pi-mono/issues/1204))
- Fixed Kitty key release events leaking to parent shell over slow SSH connections by draining stdin for up to 1s on exit ([#1204](https://github.com/badlogic/pi-mono/issues/1204))
## [0.51.1] - 2026-02-02

View file

@ -2554,7 +2554,7 @@ export class InteractiveMode {
// Drain any in-flight Kitty key release events before stopping.
// This prevents escape sequences from leaking to the parent shell over slow SSH.
await this.ui.terminal.prepareForExit();
await this.ui.terminal.drainInput(1000);
this.stop();
process.exit(0);