diff --git a/src/core/condense/__tests__/index.test.ts b/src/core/condense/__tests__/index.test.ts index 86575b85ba..e06ea4197d 100644 --- a/src/core/condense/__tests__/index.test.ts +++ b/src/core/condense/__tests__/index.test.ts @@ -205,7 +205,6 @@ describe("summarizeConversation", () => { expect(result.messages).toEqual(messages) expect(result.cost).toBe(0.02) expect(result.summary).toBe("") - expect(result.newContextTokens).toBe(100) // Only from countTokens since outputTokens is 0 expect(mockWarn).toHaveBeenCalledWith("Received empty summary from API") // Restore console.warn diff --git a/src/core/condense/index.ts b/src/core/condense/index.ts index 48d246907e..5ec839d05c 100644 --- a/src/core/condense/index.ts +++ b/src/core/condense/index.ts @@ -70,10 +70,10 @@ export async function summarizeConversation( return response // Not enough messages to warrant a summary } const keepMessages = messages.slice(-N_MESSAGES_TO_KEEP) - for (const message of keepMessages) { - if (message.isSummary) { - return response // We recently summarized these messages; it's too soon to summarize again. - } + // Check if there's a recent summary in the messages we're keeping + const recentSummaryExists = keepMessages.some((message) => message.isSummary) + if (recentSummaryExists) { + return response // We recently summarized these messages; it's too soon to summarize again. } const finalRequestMessage: Anthropic.MessageParam = { role: "user",