authorgravatar for maria@kuuro.netmaria <maria@kuuro.net> 2026-08-30 20:39:51-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-08-30 20:39:51-04:00
log8b817cbcaad71a53e2ef73f3881067f8aa8094bc
tree2d177186e475a953916a9beec5c7006436090ab3
parent17c48f7fc1af66110706b013bf41901ebcd8aedb
signature Signed by PGP key B5690EEEBB952194

fix(web): use circle alert for failed tool calls (#8840)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

2 files changed, 4 insertions(+), 4 deletions(-)

apps/web/src/components/chat/MessagesTimeline.test.tsx+2-2
...@@ -1473,7 +1473,7 @@ describe("MessagesTimeline", () => {...@@ -1473,7 +1473,7 @@ describe("MessagesTimeline", () => {
1473 />,1473 />,
1474 );1474 );
14751475
1476 expect(markup).toContain("lucide-x");1476 expect(markup).toContain("lucide-circle-alert");
1477 expect(markup).toContain('aria-label="Tool call failed"');1477 expect(markup).toContain('aria-label="Tool call failed"');
1478 // Ordinary tool failures render muted, not red.1478 // Ordinary tool failures render muted, not red.
1479 expect(markup).not.toContain("text-destructive");1479 expect(markup).not.toContain("text-destructive");
...@@ -1511,7 +1511,7 @@ describe("MessagesTimeline", () => {...@@ -1511,7 +1511,7 @@ describe("MessagesTimeline", () => {
1511 />,1511 />,
1512 );1512 );
15131513
1514 expect(markup).toContain("lucide-x");1514 expect(markup).toContain("lucide-circle-alert");
1515 expect(markup).toContain("text-destructive");1515 expect(markup).toContain("text-destructive");
1516 });1516 });
1517});1517});
apps/web/src/components/chat/MessagesTimeline.tsx+2-2
...@@ -1579,7 +1579,7 @@ function LiveActivityContent({...@@ -1579,7 +1579,7 @@ function LiveActivityContent({
1579 announceFailure?: boolean;1579 announceFailure?: boolean;
1580 highlighted?: boolean;1580 highlighted?: boolean;
1581}) {1581}) {
1582 const resolvedIconName = failed ? "x" : iconName;1582 const resolvedIconName = failed ? "circle-alert" : iconName;
15831583
1584 return (1584 return (
1585 <div1585 <div
...@@ -2554,7 +2554,7 @@ const PlainWorkEntryRow = memo(function PlainWorkEntryRow(props: {...@@ -2554,7 +2554,7 @@ const PlainWorkEntryRow = memo(function PlainWorkEntryRow(props: {
2554 const showWarningIndicator = workEntry.sourceActivityKind === "runtime.warning";2554 const showWarningIndicator = workEntry.sourceActivityKind === "runtime.warning";
2555 const showFailedIndicator = workEntryDisplayIndicatesToolFailure(workEntry);2555 const showFailedIndicator = workEntryDisplayIndicatesToolFailure(workEntry);
2556 const entryIconName =2556 const entryIconName =
2557 showWarningIndicator || showFailedIndicator ? "x" : workEntryIconName(workEntry);2557 showWarningIndicator || showFailedIndicator ? "circle-alert" : workEntryIconName(workEntry);
2558 const displayText = workEntryPreview(workEntry, workspaceRoot) ?? toolWorkEntryHeading(workEntry);2558 const displayText = workEntryPreview(workEntry, workspaceRoot) ?? toolWorkEntryHeading(workEntry);
2559 const expandedBody = buildToolCallExpandedBody(workEntry, workspaceRoot);2559 const expandedBody = buildToolCallExpandedBody(workEntry, workspaceRoot);
2560 const canExpand = expandedBody !== null;2560 const canExpand = expandedBody !== null;