From d03c8251777b5dd25992280ab9ddf3e06e8a8dc9 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Tue, 15 Sep 2026 10:41:10 -0400 Subject: [PATCH] fix(tui): clarify collapsed shell output --- packages/tui/src/util/collapse-tool-output.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/tui/src/util/collapse-tool-output.ts b/packages/tui/src/util/collapse-tool-output.ts index 759be3f18629..3a2c3bf1644f 100644 --- a/packages/tui/src/util/collapse-tool-output.ts +++ b/packages/tui/src/util/collapse-tool-output.ts @@ -42,8 +42,12 @@ function collapseTail(output: string, maxLines: number, maxChars: number) { const lines = output.split("\n") if (lines.length <= maxLines && Array.from(output).length <= maxChars) return output - const preview = lines.slice(-maxLines).join("\n") - const visible = Array.from(preview) - if (visible.length < maxChars) return `…${preview}` - return `…${visible.slice(-Math.max(0, maxChars - 1)).join("")}` + const count = Math.max(1, lines.length - Math.max(0, maxLines - 1)) + const label = `(${count} earlier ${count === 1 ? "line" : "lines"})` + if (maxLines <= 1) return label + + const preview = Array.from(lines.slice(-(maxLines - 1)).join("\n")) + const available = maxChars - Array.from(label).length - 1 + if (available <= 0) return label + return `${label}\n${preview.slice(-available).join("")}` }