From 5415e680140ba353c5e9f9e013537287667d5eb4 Mon Sep 17 00:00:00 2001 From: Xubin Ren <52506698+Re-bin@users.noreply.github.com> Date: Sat, 15 Aug 2026 17:10:58 +0800 Subject: [PATCH] fix(tui): keep scroll position indicator textual --- tui/src/app.test.ts | 6 +++--- tui/src/transcript.ts | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tui/src/app.test.ts b/tui/src/app.test.ts index a1f4403f9..1ecce3a4e 100644 --- a/tui/src/app.test.ts +++ b/tui/src/app.test.ts @@ -1134,7 +1134,7 @@ describe("NanobotTui layout", () => { app.accept({ event: "stream_end", chat_id: "chat" }) await setup.renderOnce() expect(scroll.scrollTop).toBe(0) - expect(scroll.verticalScrollBar.visible).toBe(true) + expect(scroll.verticalScrollBar.visible).toBe(false) expect(internals.status.plainText).toContain("Ctrl+End latest") setup.mockInput.pressKey("\u001B[6~") @@ -1148,8 +1148,8 @@ describe("NanobotTui layout", () => { expect(internals.status.plainText).not.toContain("Ctrl+End latest") setup.mockInput.pressKey("HOME", { ctrl: true }) - await waitUntil(() => scroll.verticalScrollBar.visible) - expect(scroll.verticalScrollBar.visible).toBe(true) + await waitUntil(() => internals.status.plainText.includes("Ctrl+End latest")) + expect(scroll.verticalScrollBar.visible).toBe(false) app.accept({ event: "attached", chat_id: "chat" }) await waitUntil(() => (app as unknown as { ready: boolean }).ready) await setup.renderOnce() diff --git a/tui/src/transcript.ts b/tui/src/transcript.ts index 0c21e3a49..03a47bd94 100644 --- a/tui/src/transcript.ts +++ b/tui/src/transcript.ts @@ -321,7 +321,6 @@ export class Transcript { && unseenOutput === this.navigation.unseenOutput ) return this.navigation = { awayFromBottom, unseenOutput } - this.root.verticalScrollBar.visible = awayFromBottom this.emitNavigation() }