fix(compaction): adjust instructions and structure to be more clear to smaller models like dsv4 flash (#42045)
Co-authored-by: akenra <37288280+akenra@users.noreply.github.com>
This commit is contained in:
@@ -4,12 +4,32 @@ import { SessionCompaction } from "@opencode-ai/core/session/compaction"
|
||||
test("compaction prompt preserves detailed work state and relevant files", () => {
|
||||
const prompt = SessionCompaction.buildPrompt({ context: ["conversation history"] })
|
||||
|
||||
expect(prompt).toStartWith(
|
||||
"Here is the conversation so far:\n\n<conversation>\nconversation history\n</conversation>",
|
||||
)
|
||||
expect(prompt.indexOf("</conversation>")).toBeLessThan(prompt.indexOf("Create a new anchored summary"))
|
||||
expect(prompt).toContain("conversation history in the <conversation> tags above")
|
||||
expect(prompt).toContain("## Work State\n### Completed")
|
||||
expect(prompt).toContain("### Active")
|
||||
expect(prompt).toContain("### Blocked")
|
||||
expect(prompt).toContain("## Relevant Files")
|
||||
})
|
||||
|
||||
test("compaction prompt gives update instructions for a prior summary", () => {
|
||||
const prompt = SessionCompaction.buildPrompt({
|
||||
context: ["new conversation"],
|
||||
previousSummary: "existing summary",
|
||||
})
|
||||
|
||||
expect(prompt.indexOf("<conversation>")).toBeLessThan(prompt.indexOf("<prior-summary>"))
|
||||
expect(prompt.indexOf("</prior-summary>")).toBeLessThan(prompt.indexOf("The <prior-summary> summarizes"))
|
||||
expect(prompt).toContain(
|
||||
"Carry forward objectives, constraints, user directives, decisions, and parallel workstreams from the <prior-summary>",
|
||||
)
|
||||
expect(prompt).toContain('Move completed work from "Active" to "Completed".')
|
||||
expect(prompt).toContain('Update "Objective" and "Next Move" to reflect the current work state.')
|
||||
})
|
||||
|
||||
test("compaction describes tool media without embedding base64", () => {
|
||||
const base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
|
||||
const serialized = SessionCompaction.serializeToolContent([
|
||||
|
||||
Reference in New Issue
Block a user