



























@@ -125,30 +125,39 @@ describe("rotateTranscriptAfterCompaction", () => {
125125expect(header.parentSession).toBe(sessionFile);
126126expect(header.cwd).toBe(dir);
127127const messages = successor.buildSessionContext().messages;
128-expect(messages.map((message) => message.role)).toStrictEqual([
129-"compactionSummary",
130-"user",
131-"assistant",
132-"user",
133-"assistant",
128+expect(
129+messages.map((message) =>
130+message.role === "compactionSummary"
131+ ? {
132+role: message.role,
133+summary: message.summary,
134+tokensBefore: message.tokensBefore,
135+}
136+ : {
137+role: message.role,
138+content: message.content,
139+timestamp: message.timestamp,
140+},
141+),
142+).toEqual([
143+{
144+role: "compactionSummary",
145+summary: "Summary of old user and old assistant.",
146+tokensBefore: 5000,
147+},
148+{ role: "user", content: "kept user", timestamp: 3 },
149+{
150+role: "assistant",
151+content: [{ type: "text", text: "kept assistant" }],
152+timestamp: 4,
153+},
154+{ role: "user", content: "post user", timestamp: 5 },
155+{
156+role: "assistant",
157+content: [{ type: "text", text: "post assistant" }],
158+timestamp: 6,
159+},
134160]);
135-expect(messages[0]).toMatchObject({
136-role: "compactionSummary",
137-summary: "Summary of old user and old assistant.",
138-tokensBefore: 5000,
139-});
140-expect(messages[1]).toMatchObject({ role: "user", content: "kept user", timestamp: 3 });
141-expect(messages[2]).toMatchObject({
142-role: "assistant",
143-content: [{ type: "text", text: "kept assistant" }],
144-timestamp: 4,
145-});
146-expect(messages[3]).toMatchObject({ role: "user", content: "post user", timestamp: 5 });
147-expect(messages[4]).toMatchObject({
148-role: "assistant",
149-content: [{ type: "text", text: "post assistant" }],
150-timestamp: 6,
151-});
152161});
153162154163it("creates a compacted successor transcript and leaves the archive untouched", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。