fix(app): keep tool call summaries neutral (#2090)

Individual tool outcomes remain visible in the expanded list. The aggregate header no longer treats a handled tool result as a failure of the overall work.
This commit is contained in:
Mohamed Boudra
2026-07-15 18:34:30 +02:00
committed by GitHub
parent 04e893417e
commit 9423b091b9
11 changed files with 0 additions and 19 deletions
@@ -17,7 +17,6 @@ export interface OverviewToolCallGroup {
mode: "overview";
run: ToolCallRun;
summary: OverviewSummary;
failedCount: number;
isLoading: boolean;
}
@@ -32,7 +31,6 @@ function isSearchCall(name: string): boolean {
export function buildOverviewGroup(run: ToolCallRun): OverviewToolCallGroup {
const editedFiles = new Set<string>();
const readFiles = new Set<string>();
let failedCount = 0;
let isLoading = false;
let commandCount = 0;
let searchCount = 0;
@@ -42,7 +40,6 @@ export function buildOverviewGroup(run: ToolCallRun): OverviewToolCallGroup {
for (const call of run.calls) {
const descriptor = describeToolCall(call);
const normalizedName = descriptor.name.trim().toLowerCase();
failedCount += descriptor.status === "failed" ? 1 : 0;
isLoading ||= descriptor.status === "running" || descriptor.status === "executing";
if (isPaseoCall(descriptor.name, normalizedName)) {
paseoCallCount += 1;
@@ -70,7 +67,6 @@ export function buildOverviewGroup(run: ToolCallRun): OverviewToolCallGroup {
return {
mode: "overview",
run,
failedCount,
isLoading,
summary,
};
@@ -58,11 +58,8 @@ export const OverviewToolCallGroupView = memo(function OverviewToolCallGroupView
onExpandedChange,
children,
}: OverviewGroupProps) {
const { t } = useTranslation();
const scrollRef = useRef<ScrollView>(null);
const aggregateSummary = useOverviewSummary(group.summary);
const failedSummary =
group.failedCount > 0 ? t("toolCallGroup.failed", { count: group.failedCount }) : undefined;
const scrollToLatest = useCallback(() => {
scrollRef.current?.scrollToEnd({ animated: false });
}, []);
@@ -89,10 +86,8 @@ export const OverviewToolCallGroupView = memo(function OverviewToolCallGroupView
<ExpandableBadge
testID="tool-call-group"
label={aggregateSummary}
secondaryLabel={failedSummary}
icon={Wrench}
isLoading={group.isLoading}
isError={group.failedCount > 0}
isExpanded={expanded}
isLastInSequence={isLastInSequence}
onToggle={toggle}
@@ -231,7 +231,6 @@ describe("tool call detail-level projection", () => {
expect(overview.groupsByHostId.get("1")).toEqual({
mode: "overview",
run: expect.any(Object),
failedCount: 1,
isLoading: false,
summary: {
editedFileCount: 1,
@@ -260,7 +259,6 @@ describe("tool call detail-level projection", () => {
const result = project({ level: "overview", head: calls });
expect(result.groupsByHostId.get("1")).toMatchObject({
failedCount: 1,
summary: {
editedFileCount: 0,
commandCount: 0,