From 3a8cf6a863ed52076362d0486bed015b9972dd63 Mon Sep 17 00:00:00 2001 From: Rodrigo Uroz Date: Fri, 27 Feb 2026 19:25:47 +0000 Subject: [PATCH] Compaction/Safeguard: skip faux non-text markers --- .../pi-extensions/compaction-safeguard.test.ts | 13 +++++++++++++ src/agents/pi-extensions/compaction-safeguard.ts | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/agents/pi-extensions/compaction-safeguard.test.ts b/src/agents/pi-extensions/compaction-safeguard.test.ts index 1394f265f91..8f8e022f9de 100644 --- a/src/agents/pi-extensions/compaction-safeguard.test.ts +++ b/src/agents/pi-extensions/compaction-safeguard.test.ts @@ -546,6 +546,19 @@ describe("compaction-safeguard recent-turn preservation", () => { expect(section).toContain("[non-text content: image]"); }); + it("does not add non-text placeholders for text-only content blocks", () => { + const section = formatPreservedTurnsSection([ + { + role: "assistant", + content: [{ type: "text", text: "plain text reply" }], + timestamp: 1, + } as unknown as AgentMessage, + ]); + + expect(section).toContain("- Assistant: plain text reply"); + expect(section).not.toContain("[non-text content]"); + }); + it("clamps preserve count into a safe range", () => { expect(resolveRecentTurnsPreserve(undefined)).toBe(3); expect(resolveRecentTurnsPreserve(-1)).toBe(0); diff --git a/src/agents/pi-extensions/compaction-safeguard.ts b/src/agents/pi-extensions/compaction-safeguard.ts index 17714beed55..f54de615463 100644 --- a/src/agents/pi-extensions/compaction-safeguard.ts +++ b/src/agents/pi-extensions/compaction-safeguard.ts @@ -220,7 +220,7 @@ function formatNonTextPlaceholder(content: unknown): string | null { typeCounts.set(type, (typeCounts.get(type) ?? 0) + 1); } if (typeCounts.size === 0) { - return "[non-text content]"; + return null; } const parts = [...typeCounts.entries()].map(([type, count]) => count > 1 ? `${type} x${count}` : type,