diff --git a/packages/tui/CHANGELOG.md b/packages/tui/CHANGELOG.md index 74b901b5..a72139c8 100644 --- a/packages/tui/CHANGELOG.md +++ b/packages/tui/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Cursor now moves to end of content on exit, preventing status line from being overwritten ([#629](https://github.com/badlogic/pi-mono/pull/629) by [@tallshort](https://github.com/tallshort)) + ## [0.42.5] - 2026-01-11 ### Fixed diff --git a/packages/tui/src/tui.ts b/packages/tui/src/tui.ts index 1547e6fb..4b5720d5 100644 --- a/packages/tui/src/tui.ts +++ b/packages/tui/src/tui.ts @@ -157,6 +157,18 @@ export class TUI extends Container { } stop(): void { + // Move cursor to the end of the content to prevent overwriting/artifacts on exit + if (this.previousLines.length > 0) { + const targetRow = this.previousLines.length; // Line after the last content + const lineDiff = targetRow - this.cursorRow; + if (lineDiff > 0) { + this.terminal.write(`\x1b[${lineDiff}B`); + } else if (lineDiff < 0) { + this.terminal.write(`\x1b[${-lineDiff}A`); + } + this.terminal.write("\r\n"); + } + this.terminal.showCursor(); this.terminal.stop(); }