fix(tui): keep retry attempt before message

This commit is contained in:
Kit Langton
2026-06-01 15:04:21 -04:00
parent 6072a68d6b
commit 5519620588
2 changed files with 10 additions and 1 deletions
@@ -2228,7 +2228,7 @@ function Task(props: ToolProps<typeof TaskTool>) {
const retrying = retry()
if (isRunning() && retrying) {
content.push(`${Locale.truncate(retrying.message, 80)} [retrying attempt #${retrying.attempt}]`)
content.push(`${formatSubagentRetry(retrying.attempt, Locale.truncate(retrying.message, 80))}`)
} else if (isRunning() && tools().length > 0) {
if (current()) {
const state = current()!.state
@@ -2274,6 +2274,10 @@ export function formatSubagentTitle(agent: string, description: string, backgrou
return `${agent} Task${background ? " (background)" : ""}${description}`
}
export function formatSubagentRetry(attempt: number, message: string) {
return `Retry #${attempt} · ${message}`
}
export function formatCompletedSubagentDetail(toolcalls: number, duration: string) {
if (toolcalls === 0) return duration
return `${formatSubagentToolcalls(toolcalls)} · ${duration}`
@@ -3,6 +3,7 @@ import { For } from "solid-js"
import { testRender, type JSX } from "@opentui/solid"
import {
formatCompletedSubagentDetail,
formatSubagentRetry,
formatSubagentTitle,
formatSubagentToolcalls,
InlineToolRow,
@@ -155,6 +156,10 @@ describe("TUI inline tool wrapping", () => {
)
})
test("keeps retry status ahead of wrapping messages", () => {
expect(formatSubagentRetry(2, "Rate limited by provider")).toBe("Retry #2 · Rate limited by provider")
})
test("snapshots consecutive grep, glob, and read rows at a narrow width", async () => {
expect(await renderFrame(() => <Fixture />, { width: 72, height: 12 })).toMatchSnapshot()
})