Compare commits

...

14 Commits

Author SHA1 Message Date
Dax Raad
dc2c9c7673 tui: show pending toolcall count instead of generic 'Running...' message 2026-03-03 15:06:07 -05:00
Dax Raad
07025ef5b9 tui: use arrow indicator to clearly show active tool execution in session view 2026-03-03 14:36:08 -05:00
Dax Raad
6dd903c348 tui: remove toolcall count from task status to reduce visual clutter 2026-03-03 14:14:43 -05:00
Dax Raad
37fdbe7fa6 tui: use cleaner └ character for task indicators
Replaces the ⤷ arrow with a cleaner └ character when displaying running tool calls in task output, improving visual clarity in the session interface.
2026-03-03 14:12:27 -05:00
Dax Raad
c27779e1b2 tui: improve task status display readability in session view
Refactored task status rendering to provide clearer information about
tool execution progress. Users now see a more consistent and readable
format showing active tool calls and completion timing.
2026-03-03 14:09:27 -05:00
Dax Raad
8d232d35eb tui: fix task display nesting so running status only shows when toolcalls exist 2026-03-03 13:59:45 -05:00
Dax Raad
98309fdd58 tui: simplify task tool display with cleaner tree indentation
Replaces the '⋮' icon with '│' and updates the tree formatting to use

consistent '└' characters for better visual hierarchy when showing

running and completed task states.
2026-03-03 13:59:15 -05:00
Dax Raad
50cb49fa6c tui: improve path display and consistency in session view 2026-03-03 13:51:39 -05:00
Dax Raad
ec56e95b9c tui: show loaded file paths inline with Read tool to reduce visual clutter
tui: change Task tool icon to vertical ellipsis for clearer visual distinction
2026-03-03 13:41:22 -05:00
Dax Raad
ce9900dca0 tui: improve toolcall duration visual alignment by adding consistent indentation 2026-03-03 13:16:26 -05:00
Dax Raad
5527b4ea4d tui: simplify running tool display to show tool names more directly in task UI 2026-03-03 13:16:00 -05:00
Dax Raad
1f3ee037aa tui: prefix task descriptions with 'Task' label for clearer identification during delegation 2026-03-03 11:21:32 -05:00
Dax Raad
e5c5c1df12 tui: consistent arrow symbols and indentation in tool output
Changed tool output formatting to use ↳ consistently for child items

instead of mixed └ and spaces, making the terminal interface

visual hierarchy clearer when displaying loaded files and

running task progress.
2026-03-03 11:18:18 -05:00
Dax Raad
0a451c73c9 tui: remove extra empty line from exit message logo display 2026-03-03 09:40:46 -05:00

View File

@@ -241,7 +241,6 @@ export function Session() {
const logo = UI.logo(" ").split(/\r?\n/)
return exit.message.set(
[
``,
`${logo[0] ?? ""}`,
`${logo[1] ?? ""}`,
`${logo[2] ?? ""}`,
@@ -1879,10 +1878,8 @@ function Read(props: ToolProps<typeof ReadTool>) {
</InlineTool>
<For each={loaded()}>
{(filepath) => (
<box paddingLeft={3}>
<text paddingLeft={3} fg={theme.textMuted}>
Loaded {normalizePath(filepath)}
</text>
<box paddingLeft={5}>
<text fg={theme.textMuted}> Loaded {normalizePath(filepath)}</text>
</box>
)}
</For>
@@ -1976,33 +1973,32 @@ function Task(props: ToolProps<typeof TaskTool>) {
return assistant - first
})
const content = createMemo(() => {
if (!props.input.description) return ""
let content = [`Task ${props.input.description}`]
if (isRunning() && tools().length > 0) {
// content[0] += ` · ${tools().length} toolcalls`
if (current()) content.push(`${Locale.titlecase(current()!.tool)} ${(current()!.state as any).title}`)
else content.push(`${tools().length} toolcalls`)
}
if (props.part.state.status === "completed") {
content.push(`${tools().length} toolcalls · ${Locale.duration(duration())}`)
}
return content.join("\n")
})
return (
<InlineTool
icon=""
icon=""
spinner={isRunning()}
complete={props.input.description}
pending="Delegating..."
part={props.part}
>
{props.input.description}
<Show when={isRunning() && tools().length > 0}>
{" "}
· {tools().length} toolcalls
<Show fallback={"\n└ Running..."} when={current()}>
{(item) => {
const title = createMemo(() => (item().state as any).title)
return (
<>
{"\n"} {Locale.titlecase(item().tool)} {title()}
</>
)
}}
</Show>
</Show>
<Show when={duration() && props.part.state.status === "completed"}>
{"\n "}
{tools().length} toolcalls · {Locale.duration(duration())}
</Show>
{content()}
</InlineTool>
)
}
@@ -2222,10 +2218,16 @@ function Diagnostics(props: { diagnostics?: Record<string, Record<string, any>[]
function normalizePath(input?: string) {
if (!input) return ""
if (path.isAbsolute(input)) {
return path.relative(process.cwd(), input) || "."
}
return input
const cwd = process.cwd()
const absolute = path.isAbsolute(input) ? input : path.resolve(cwd, input)
const relative = path.relative(cwd, absolute)
if (!relative) return "."
if (!relative.startsWith("..")) return relative
// outside cwd - use absolute
return absolute
}
function input(input: Record<string, any>, omit?: string[]): string {