From 9dabb85007dc1daec0efe09c8dc6bfeba83f6bd2 Mon Sep 17 00:00:00 2001 From: Daniel <57051444+daniel-lxs@users.noreply.github.com> Date: Mon, 22 Sep 2025 22:02:11 -0500 Subject: [PATCH] Fix: Improve reasoning block formatting for better readability (#7868) --- src/core/task/Task.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index ec7c07999f..2dd9e55c0b 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -1944,10 +1944,22 @@ export class Task extends EventEmitter implements TaskLike { } switch (chunk.type) { - case "reasoning": + case "reasoning": { reasoningMessage += chunk.text - await this.say("reasoning", reasoningMessage, undefined, true) + // Only apply formatting if the message contains sentence-ending punctuation followed by ** + let formattedReasoning = reasoningMessage + if (reasoningMessage.includes("**")) { + // Add line breaks before **Title** patterns that appear after sentence endings + // This targets section headers like "...end of sentence.**Title Here**" + // Handles periods, exclamation marks, and question marks + formattedReasoning = reasoningMessage.replace( + /([.!?])\*\*([^*\n]+)\*\*/g, + "$1\n\n**$2**", + ) + } + await this.say("reasoning", formattedReasoning, undefined, true) break + } case "usage": inputTokens += chunk.inputTokens outputTokens += chunk.outputTokens