@@ -77,10 +77,12 @@ pub async fn summarize_if_needed(
7777
7878 let s1 = summarize_batch ( llm, part1, "" , model) . await ?;
7979 let s2 = summarize_batch ( llm, part2, "" , model) . await ?;
80- merge_summaries ( llm, & s1, & s2, model) . await . unwrap_or_else ( |_| {
81- // Fallback: concatenate
82- format ! ( "{}\n \n {}" , s1, s2)
83- } )
80+ merge_summaries ( llm, & s1, & s2, model)
81+ . await
82+ . unwrap_or_else ( |_| {
83+ // Fallback: concatenate
84+ format ! ( "{}\n \n {}" , s1, s2)
85+ } )
8486 } else {
8587 // Single-pass
8688 summarize_batch ( llm, & valid_messages, & existing_summary, model) . await ?
@@ -121,10 +123,7 @@ fn estimate_tokens(text: &str) -> usize {
121123 text. chars ( ) . count ( ) / 3
122124}
123125
124- fn filter_valid_messages (
125- messages : & [ Message ] ,
126- max_tokens : usize ,
127- ) -> ( Vec < Message > , bool ) {
126+ fn filter_valid_messages ( messages : & [ Message ] , max_tokens : usize ) -> ( Vec < Message > , bool ) {
128127 let mut valid = Vec :: new ( ) ;
129128 let mut omitted = false ;
130129
@@ -205,7 +204,13 @@ async fn summarize_batch(
205204 ] ;
206205
207206 let response = llm
208- . chat_with_params ( & msgs, & [ ] , model, Some ( SUMMARY_TEMPERATURE ) , Some ( SUMMARY_MAX_TOKENS ) )
207+ . chat_with_params (
208+ & msgs,
209+ & [ ] ,
210+ model,
211+ Some ( SUMMARY_TEMPERATURE ) ,
212+ Some ( SUMMARY_MAX_TOKENS ) ,
213+ )
209214 . await ?;
210215
211216 Ok ( response. content . trim ( ) . to_string ( ) )
@@ -230,7 +235,13 @@ async fn merge_summaries(
230235 } ] ;
231236
232237 let response = llm
233- . chat_with_params ( & msgs, & [ ] , model, Some ( SUMMARY_TEMPERATURE ) , Some ( SUMMARY_MAX_TOKENS ) )
238+ . chat_with_params (
239+ & msgs,
240+ & [ ] ,
241+ model,
242+ Some ( SUMMARY_TEMPERATURE ) ,
243+ Some ( SUMMARY_MAX_TOKENS ) ,
244+ )
234245 . await ?;
235246
236247 Ok ( response. content . trim ( ) . to_string ( ) )
@@ -242,23 +253,29 @@ mod tests {
242253
243254 #[ test]
244255 fn should_summarize_returns_false_when_below_threshold ( ) {
245- let history = vec ! [ Message {
246- role: Role :: User ,
247- content: "test" . to_string( ) ,
248- tool_call_id: None ,
249- tool_calls: None ,
250- } ; SUMMARIZE_THRESHOLD ] ;
256+ let history = vec ! [
257+ Message {
258+ role: Role :: User ,
259+ content: "test" . to_string( ) ,
260+ tool_call_id: None ,
261+ tool_calls: None ,
262+ } ;
263+ SUMMARIZE_THRESHOLD
264+ ] ;
251265 assert ! ( !should_summarize( & history) ) ;
252266 }
253267
254268 #[ test]
255269 fn should_summarize_returns_true_when_above_threshold ( ) {
256- let history = vec ! [ Message {
257- role: Role :: User ,
258- content: "test" . to_string( ) ,
259- tool_call_id: None ,
260- tool_calls: None ,
261- } ; SUMMARIZE_THRESHOLD + 1 ] ;
270+ let history = vec ! [
271+ Message {
272+ role: Role :: User ,
273+ content: "test" . to_string( ) ,
274+ tool_call_id: None ,
275+ tool_calls: None ,
276+ } ;
277+ SUMMARIZE_THRESHOLD + 1
278+ ] ;
262279 assert ! ( should_summarize( & history) ) ;
263280 }
264281
0 commit comments