From c48f7319ca05a26a4b06b5160d34cc78e8a4682f Mon Sep 17 00:00:00 2001 From: ZhenYi <434836402@qq.com> Date: Thu, 30 Apr 2026 23:37:13 +0800 Subject: [PATCH] fix(chat): handle multi-byte character truncation in tool result preview --- libs/agent/chat/service.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/agent/chat/service.rs b/libs/agent/chat/service.rs index 3316fa7..2ae3d6d 100644 --- a/libs/agent/chat/service.rs +++ b/libs/agent/chat/service.rs @@ -791,7 +791,13 @@ impl ChatService { crate::tool::ToolResult::Error(msg) => msg.clone(), }; let preview = if text.len() > 300 { - format!("{}...", &text[..300]) + let end = text + .char_indices() + .map(|(i, _)| i) + .take_while(|&i| i <= 300) + .last() + .unwrap_or(300); + format!("{}...", &text[..end]) } else { text.clone() };