diff --git a/packages/tui/src/routes/session/index.tsx b/packages/tui/src/routes/session/index.tsx index 7653c6c0916..0b8228ef871 100644 --- a/packages/tui/src/routes/session/index.tsx +++ b/packages/tui/src/routes/session/index.tsx @@ -1141,7 +1141,7 @@ export function Session(props: { }, run: () => { const lastAssistantMessage = messagesBeforeRevert().findLast( - (msg): msg is SessionMessageAssistant => msg.type === "assistant", + (msg) => msg.type === "assistant" || (msg.type === "compaction" && msg.status === "completed" && msg.summary.trim() !== ""), ) if (!lastAssistantMessage) { toast.show({ message: "No assistant messages found", variant: "error" }) @@ -1149,17 +1149,16 @@ export function Session(props: { return } - const textParts = lastAssistantMessage.content.filter((part) => part.type === "text") - if (textParts.length === 0) { - toast.show({ message: "No text parts found in last assistant message", variant: "error" }) - dialog.clear() - return - } - - const text = textParts - .map((part) => part.text) - .join("\n") - .trim() + const text = + lastAssistantMessage.type === "assistant" + ? lastAssistantMessage.content + .filter((part) => part.type === "text") + .map((part) => part.text) + .join("\n") + .trim() + : lastAssistantMessage.type === "compaction" && lastAssistantMessage.status === "completed" + ? lastAssistantMessage.summary.trim() + : "" if (!text) { toast.show({ message: "No text content found in last assistant message",