core: add experimental turn summarization to compact conversation history

This commit is contained in:
Dax Raad
2025-10-22 18:33:33 -04:00
parent f194a784b0
commit 1f80de2fa6
6 changed files with 69 additions and 3 deletions

View File

@@ -50,6 +50,7 @@ import { spawn } from "child_process"
import { Command } from "../command"
import { $, fileURLToPath } from "bun"
import { ConfigMarkdown } from "../config/markdown"
import { MessageSummary } from "./summary"
export namespace SessionPrompt {
const log = Log.create({ service: "session.prompt" })
@@ -345,6 +346,11 @@ export namespace SessionPrompt {
}
state().queued.delete(input.sessionID)
SessionCompaction.prune(input)
MessageSummary.summarize({
sessionID: input.sessionID,
messageID: result.info.parentID,
providerID: model.providerID,
})
return result
}
}
@@ -355,7 +361,7 @@ export namespace SessionPrompt {
providerID: string
signal: AbortSignal
}) {
let msgs = await Session.messages(input.sessionID).then(MessageV2.filterSummarized)
let msgs = await Session.messages(input.sessionID).then(MessageV2.filterCompacted)
const lastAssistant = msgs.findLast((msg) => msg.info.role === "assistant")
if (
lastAssistant?.info.role === "assistant" &&