From fa26f15e689bda17019f82236db7fe6e22e634ce Mon Sep 17 00:00:00 2001 From: Sviatoslav Abakumov Date: Sat, 14 Mar 2026 19:00:34 +0400 Subject: [PATCH] fix(tui): clear stale scrollback on session switch (#2155) fullRender wrote \x1b[3J\x1b[2J\x1b[H (clear scrollback, then clear screen). But \x1b[2J pushes on-screen content into scrollback, undoing the preceding \x1b[3J. Reorder to \x1b[2J\x1b[H\x1b[3J so the screen is cleared first and scrollback is wiped last. --- packages/tui/src/tui.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tui/src/tui.ts b/packages/tui/src/tui.ts index 7f4bb999..1fb2fd39 100644 --- a/packages/tui/src/tui.ts +++ b/packages/tui/src/tui.ts @@ -900,7 +900,7 @@ export class TUI extends Container { const fullRender = (clear: boolean): void => { this.fullRedrawCount += 1; let buffer = "\x1b[?2026h"; // Begin synchronized output - if (clear) buffer += "\x1b[3J\x1b[2J\x1b[H"; // Clear scrollback, screen, and home + if (clear) buffer += "\x1b[2J\x1b[H\x1b[3J"; // Clear screen, home, then clear scrollback for (let i = 0; i < newLines.length; i++) { if (i > 0) buffer += "\r\n"; buffer += newLines[i];