From 124c7fc2bec6bf27aadd5f3e457676c7ef2db71e Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Thu, 18 Dec 2025 22:56:49 -0800 Subject: [PATCH] compact --- codex-rs/core/src/codex.rs | 2 +- codex-rs/core/src/compact.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index 4ca5668570..0c6b573989 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -2370,7 +2370,7 @@ pub(crate) async fn run_task( last_agent_message } -async fn refresh_models_and_reset_turn_context( +pub(crate) async fn refresh_models_and_reset_turn_context( sess: &Arc, turn_context: &Arc, ) { diff --git a/codex-rs/core/src/compact.rs b/codex-rs/core/src/compact.rs index 3ccbfb6128..a864774d69 100644 --- a/codex-rs/core/src/compact.rs +++ b/codex-rs/core/src/compact.rs @@ -6,6 +6,7 @@ use crate::client_common::ResponseEvent; use crate::codex::Session; use crate::codex::TurnContext; use crate::codex::get_last_assistant_message_from_turn; +use crate::codex::refresh_models_and_reset_turn_context; use crate::error::CodexErr; use crate::error::Result as CodexResult; use crate::features::Feature; @@ -132,6 +133,10 @@ async fn run_compact_task_inner( Err(e) => { if retries < max_retries { retries += 1; + if matches!(e, CodexErr::OutdatedModels) { + refresh_models_and_reset_turn_context(&sess, &turn_context).await; + continue; + } let delay = backoff(retries); sess.notify_stream_error( turn_context.as_ref(),