From 8a951016e9fee27270b8ec657c3fd093328836ec Mon Sep 17 00:00:00 2001 From: spoons-and-mirrors <212802214+spoons-and-mirrors@users.noreply.github.com> Date: Sun, 14 Dec 2025 00:01:50 +0100 Subject: [PATCH] Prevents compacted tools from appearing in the prunable tools list --- lib/messages/prune.ts | 3 +++ lib/state/tool-cache.ts | 1 + lib/state/types.ts | 1 + 3 files changed, 5 insertions(+) diff --git a/lib/messages/prune.ts b/lib/messages/prune.ts index cb0ba18a..fc97aee6 100644 --- a/lib/messages/prune.ts +++ b/lib/messages/prune.ts @@ -24,6 +24,9 @@ const buildPrunableToolsList = ( if (config.strategies.pruneTool.protectedTools.includes(toolParameterEntry.tool)) { return } + if (toolParameterEntry.compacted) { + return + } const numericId = toolIdList.indexOf(toolCallId) const paramKey = extractParameterKey(toolParameterEntry.tool, toolParameterEntry.parameters) const description = paramKey ? `${toolParameterEntry.tool}, ${paramKey}` : toolParameterEntry.tool diff --git a/lib/state/tool-cache.ts b/lib/state/tool-cache.ts index 854aaaab..3325367c 100644 --- a/lib/state/tool-cache.ts +++ b/lib/state/tool-cache.ts @@ -31,6 +31,7 @@ export async function syncToolCache( parameters: part.state?.input ?? {}, status: part.state.status as ToolStatus | undefined, error: part.state.status === "error" ? part.state.error : undefined, + compacted: part.state.status === "completed" && !!part.state.time.compacted, } ) diff --git a/lib/state/types.ts b/lib/state/types.ts index 89fc8e7f..e1b92a77 100644 --- a/lib/state/types.ts +++ b/lib/state/types.ts @@ -12,6 +12,7 @@ export interface ToolParameterEntry { parameters: any status?: ToolStatus error?: string + compacted?: boolean } export interface SessionStats {