diff --git a/packages/tui/src/routes/session/index.tsx b/packages/tui/src/routes/session/index.tsx index 592e0715a9..75d387521f 100644 --- a/packages/tui/src/routes/session/index.tsx +++ b/packages/tui/src/routes/session/index.tsx @@ -2386,9 +2386,14 @@ function Shell(props: ToolProps) { const input = createMemo(() => (command() ? `${isRunning() ? "" : "$ "}${command()}` : "")) const content = createMemo(() => [input(), output()].filter(Boolean).join("\n\n")) const collapsed = createMemo(() => collapseToolOutput(content(), maxLines, maxChars())) - const limited = createMemo(() => { - if (expanded() || !collapsed().overflow) return content() - return collapsed().output + const visible = createMemo(() => { + const command = input() + if (expanded()) return { input: command, output: output() } + const preview = collapsed().overflow ? collapsed().output : content() + return { + input: preview.slice(0, command.length), + output: preview.slice(command.length).replace(/^\n+/, ""), + } }) const expandable = createMemo(() => Boolean(shellID()) || collapsed().overflow) const toggle = () => { @@ -2413,18 +2418,17 @@ function Shell(props: ToolProps) { - {limited().slice(0, input().length)} - {limited().slice(input().length)} - + {visible().input} } > - {limited().slice(0, input().length)} - {limited().slice(input().length)} + {visible().input} + + {(value) => {value()}} + Background