From c9b5df8184ae4618ad7ae095d13195a4b622c23f Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 3 Dec 2025 10:24:41 +0000 Subject: [PATCH] Verbose: collapse tool meta paths by directory --- src/auto-reply/command-reply.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/auto-reply/command-reply.ts b/src/auto-reply/command-reply.ts index 65da82cec..303d6f8bd 100644 --- a/src/auto-reply/command-reply.ts +++ b/src/auto-reply/command-reply.ts @@ -134,7 +134,29 @@ function formatToolPrefix(toolName?: string, meta?: string) { function formatToolAggregate(toolName?: string, metas?: string[]) { const filtered = (metas ?? []).filter(Boolean); if (!filtered.length) return formatToolPrefix(toolName); - return `${formatToolPrefix(toolName)} ${filtered.join(", ")}`; + + // Group paths under common directory to reduce noise + const grouped: Record = {}; + for (const m of filtered) { + const parts = m.split("/"); + if (parts.length > 1) { + const dir = parts.slice(0, -1).join("/"); + const base = parts.at(-1) ?? m; + if (!grouped[dir]) grouped[dir] = []; + grouped[dir].push(base); + } else { + if (!grouped["."]) grouped["."] = []; + grouped["."].push(m); + } + } + + const segments = Object.entries(grouped).map(([dir, files]) => { + const brace = files.length > 1 ? `{${files.join(", ")}}` : files[0]; + if (dir === ".") return brace; + return `${dir}/${brace}`; + }); + + return `${formatToolPrefix(toolName)} ${segments.join("; ")}`; } export function summarizeClaudeMetadata(payload: unknown): string | undefined {