From 2c78cc68dab4326f1a53919ee949fd4be5269f12 Mon Sep 17 00:00:00 2001 From: MoerAI Date: Fri, 24 Apr 2026 19:01:10 +0900 Subject: [PATCH] fix(tool-execute-after): cap excessively long tool output to prevent TUI flooding (fixes #3586) --- src/plugin/tool-execute-after.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/plugin/tool-execute-after.ts b/src/plugin/tool-execute-after.ts index 19bb724d7..f230d90db 100644 --- a/src/plugin/tool-execute-after.ts +++ b/src/plugin/tool-execute-after.ts @@ -181,5 +181,14 @@ export function createToolExecuteAfterHandler(args: { } await runToolExecuteAfterHooks() + + // Cap excessively long error outputs that would flood the TUI with raw + // stack traces or framework internals. Normal outputs are handled by the + // tool-output-truncator hook for specific tools; this catch-all only fires + // for outputs that still exceed a safe display length after all hooks. + const MAX_ERROR_OUTPUT_CHARS = 3000 + if (typeof output.output === "string" && output.output.length > MAX_ERROR_OUTPUT_CHARS) { + output.output = output.output.slice(0, MAX_ERROR_OUTPUT_CHARS) + "\n\n...(output truncated for display)" + } } }