fix: wrap telegram reasoning italics per line (#2181)

Landed PR #2181.

Thanks @YuriNachos!

Co-authored-by: YuriNachos <YuriNachos@users.noreply.github.com>
This commit is contained in:
Yuri Chukhlib
2026-01-26 16:05:06 +01:00
committed by GitHub
parent 961b4adc1c
commit 300cda5d7d
4 changed files with 48 additions and 3 deletions

View File

@@ -211,7 +211,13 @@ export function formatReasoningMessage(text: string): string {
if (!trimmed) return "";
// Show reasoning in italics (cursive) for markdown-friendly surfaces (Discord, etc.).
// Keep the plain "Reasoning:" prefix so existing parsing/detection keeps working.
return `Reasoning:\n_${trimmed}_`;
// Note: Underscore markdown cannot span multiple lines on Telegram, so we wrap
// each non-empty line separately.
const italicLines = trimmed
.split("\n")
.map((line) => (line ? `_${line}_` : line))
.join("\n");
return `Reasoning:\n${italicLines}`;
}
type ThinkTaggedSplitBlock =