From a79bebe5cab8aec533843119a9f631a79d6b83d3 Mon Sep 17 00:00:00 2001 From: Charles Cunningham Date: Fri, 13 Feb 2026 18:28:27 -0800 Subject: [PATCH] Simplify --- codex-rs/core/src/codex.rs | 50 +++++++++----------------------------- 1 file changed, 12 insertions(+), 38 deletions(-) diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index 2e29b5c361..7744480ab4 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -4479,7 +4479,7 @@ pub(crate) async fn run_turn( // as long as compaction works well in getting us way below the token limit, we shouldn't worry about being in an infinite loop. if token_limit_reached && needs_follow_up { - if run_auto_compact(&sess, &turn_context, false).await.is_err() { + if run_auto_compact(&sess, &turn_context).await.is_err() { return None; } continue; @@ -4586,23 +4586,12 @@ async fn run_pre_sampling_compact( turn_context: &Arc, ) -> CodexResult<()> { let total_usage_tokens_before_compaction = sess.get_total_token_usage().await; - let previous_model = sess.previous_model().await; - let previous_model_compaction_ran = maybe_run_previous_model_inline_compact( + maybe_run_previous_model_inline_compact( sess, turn_context, total_usage_tokens_before_compaction, ) .await?; - if previous_model_compaction_ran - && let Some(model_switch_item) = sess.build_model_instructions_update_item( - None, - previous_model.as_deref(), - turn_context.as_ref(), - ) - { - sess.record_conversation_items(turn_context.as_ref(), &[model_switch_item]) - .await; - } let total_usage_tokens = sess.get_total_token_usage().await; let auto_compact_limit = turn_context .model_info @@ -4610,7 +4599,7 @@ async fn run_pre_sampling_compact( .unwrap_or(i64::MAX); // Compact if the total usage tokens are greater than the auto compact limit if total_usage_tokens >= auto_compact_limit { - run_auto_compact(sess, turn_context, false).await?; + run_auto_compact(sess, turn_context).await?; } Ok(()) } @@ -4625,9 +4614,9 @@ async fn maybe_run_previous_model_inline_compact( sess: &Arc, turn_context: &Arc, total_usage_tokens: i64, -) -> CodexResult { +) -> CodexResult<()> { let Some(previous_model) = sess.previous_model().await else { - return Ok(false); + return Ok(()); }; let previous_turn_context = Arc::new( turn_context @@ -4636,10 +4625,10 @@ async fn maybe_run_previous_model_inline_compact( ); let Some(old_context_window) = previous_turn_context.model_context_window() else { - return Ok(false); + return Ok(()); }; let Some(new_context_window) = turn_context.model_context_window() else { - return Ok(false); + return Ok(()); }; let new_auto_compact_limit = turn_context .model_info @@ -4649,31 +4638,16 @@ async fn maybe_run_previous_model_inline_compact( && previous_turn_context.model_info.slug != turn_context.model_info.slug && old_context_window > new_context_window; if should_run { - run_auto_compact(sess, &previous_turn_context, true).await?; - return Ok(true); + run_auto_compact(sess, &previous_turn_context).await?; } - Ok(false) + Ok(()) } -async fn run_auto_compact( - sess: &Arc, - turn_context: &Arc, - strip_trailing_model_switch_update: bool, -) -> CodexResult<()> { +async fn run_auto_compact(sess: &Arc, turn_context: &Arc) -> CodexResult<()> { if should_use_remote_compact_task(&turn_context.provider) { - run_inline_remote_auto_compact_task( - Arc::clone(sess), - Arc::clone(turn_context), - strip_trailing_model_switch_update, - ) - .await?; + run_inline_remote_auto_compact_task(Arc::clone(sess), Arc::clone(turn_context)).await?; } else { - run_inline_auto_compact_task( - Arc::clone(sess), - Arc::clone(turn_context), - strip_trailing_model_switch_update, - ) - .await?; + run_inline_auto_compact_task(Arc::clone(sess), Arc::clone(turn_context)).await?; } Ok(()) }