From 8f54597ef2e7f618ae6ce3ef8de9247e9c49af1d Mon Sep 17 00:00:00 2001 From: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Date: Sat, 22 Aug 2026 18:05:23 +0800 Subject: [PATCH] fix(app): collapse failed patch cards (#44105) --- .../src/message/current-message.test.ts | 16 ++++++++++++++++ .../session-ui/src/message/current-tool-state.ts | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/session-ui/src/message/current-message.test.ts b/packages/session-ui/src/message/current-message.test.ts index a9653ac513..3f8dd30ca5 100644 --- a/packages/session-ui/src/message/current-message.test.ts +++ b/packages/session-ui/src/message/current-message.test.ts @@ -29,6 +29,22 @@ describe("current content default open", () => { expect(currentContentDefaultOpen(tool("patch"), false, false)).toBe(true) }) + test("collapses failed patches", () => { + const patch: SessionMessageAssistantTool = { + type: "tool", + id: "tool_patch", + name: "patch", + state: { + status: "error", + input: {}, + error: { type: "ToolError", message: "Verification failed" }, + metadata: {}, + }, + time: { created: 1, completed: 2 }, + } + expect(currentContentDefaultOpen(patch, false, false)).toBe(false) + }) + test("opens deletion-only patches", () => { expect( currentContentDefaultOpen( diff --git a/packages/session-ui/src/message/current-tool-state.ts b/packages/session-ui/src/message/current-tool-state.ts index ae1bc47dd5..bd566d0e13 100644 --- a/packages/session-ui/src/message/current-tool-state.ts +++ b/packages/session-ui/src/message/current-tool-state.ts @@ -36,7 +36,7 @@ export function currentContentDefaultOpen( ) { if (content.type !== "tool") return undefined if (content.name === "shell" || content.name === "execute") return shellExpanded - if (content.name === "patch") return true + if (content.name === "patch") return content.state.status !== "error" if (content.name !== "edit" && content.name !== "write") return undefined if (!editExpanded) return false const files = currentToolMetadata(content).files