From 34a27de85e07e0bd0295943d96be850d0b350a3f Mon Sep 17 00:00:00 2001 From: zhujg007 <371703364@qq.com> Date: Fri, 10 Apr 2026 20:51:36 +0800 Subject: [PATCH] Fix: Safe char boundary handling for UTF-8 string slicing --- crates/openfang-runtime/src/compactor.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/crates/openfang-runtime/src/compactor.rs b/crates/openfang-runtime/src/compactor.rs index 3186e4f4..de120f21 100644 --- a/crates/openfang-runtime/src/compactor.rs +++ b/crates/openfang-runtime/src/compactor.rs @@ -435,11 +435,10 @@ async fn summarize_messages( let safe_start = if conversation_text.is_char_boundary(start) { start } else { - conversation_text[start..] - .char_indices() - .next() - .map(|(i, _)| start + i) - .unwrap_or(conversation_text.len()) + // Find the nearest valid character boundary moving upward + (start..conversation_text.len()) + .find(|&i| conversation_text.is_char_boundary(i)) + .unwrap_or(conversation_text.len()) }; conversation_text = conversation_text[safe_start..].to_string(); }