From 5346c7eacc92a858eec31c29cf2204e48cdea230 Mon Sep 17 00:00:00 2001 From: Roy Han Date: Tue, 19 May 2026 17:31:37 -0700 Subject: [PATCH] limit automatic compactions per turn --- codex-rs/core/src/tasks/regular.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/codex-rs/core/src/tasks/regular.rs b/codex-rs/core/src/tasks/regular.rs index 69447bc8d7..1258f7ea53 100644 --- a/codex-rs/core/src/tasks/regular.rs +++ b/codex-rs/core/src/tasks/regular.rs @@ -84,8 +84,12 @@ impl SessionTask for RegularTask { ) .instrument(run_turn_span.clone()) .await; - let (last_agent_message, can_restart_with_pending_input) = match turn_result { - RunTurnResult::Continue(last_agent_message) => (last_agent_message, true), + match turn_result { + RunTurnResult::Continue(last_agent_message) => { + if !sess.input_queue.has_pending_input(&sess.active_turn).await { + return last_agent_message; + } + } RunTurnResult::Terminal => { let turn_state = { let active_turn = sess.active_turn.lock().await; @@ -101,14 +105,8 @@ impl SessionTask for RegularTask { .await, ); } - (None, false) + return None; } - }; - if !can_restart_with_pending_input { - return last_agent_message; - } - if !sess.input_queue.has_pending_input(&sess.active_turn).await { - return last_agent_message; } next_input = Vec::new(); }