From 387cc9c30cd7c4ab318ca003030468bd4775f468 Mon Sep 17 00:00:00 2001 From: Hyu Date: Sat, 10 Oct 2026 21:29:47 +0800 Subject: [PATCH] fix(dingtalk): normalize spacing around visible think markers --- src/langbot/libs/dingtalk_api/thinking.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/langbot/libs/dingtalk_api/thinking.py b/src/langbot/libs/dingtalk_api/thinking.py index a69f85250..a58d51f75 100644 --- a/src/langbot/libs/dingtalk_api/thinking.py +++ b/src/langbot/libs/dingtalk_api/thinking.py @@ -7,10 +7,12 @@ _MARKER = re.compile(r"", re.IGNORECASE) def visible_think_markers(content: str, markdown: bool = True) -> str: def replace(match): - tag = match.group(0).lower() - return "\n\n" + (f"`{tag}`" if markdown else tag) + "\n\n" + tag = match.group(1).lower() + separator = "\n\n" if markdown else "\n" + return separator + (f"`{tag}`" if markdown else tag) + separator - return _MARKER.sub(replace, content).strip() + # Normalize only marker boundaries; preserve paragraph spacing in the body. + return re.sub(r"[ \t\r\n]*()[ \t\r\n]*", replace, content, flags=re.IGNORECASE).strip() def card_text_fields(content: str) -> dict[str, str]: