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(); }