From 63b268c81b28bb65203afdc57862efaa3879998b Mon Sep 17 00:00:00 2001 From: jif Date: Tue, 18 Aug 2026 09:19:38 +0000 Subject: [PATCH] Skip empty user messages for automatic idle turns (#39174) ## What changed Start sampling for automatic idle `UserInput` requests without adding an empty message to the input queue. Continue queuing automatic response-item input. GitOrigin-RevId: 5d304aed9e7e165380b29b5b59d9245e97b40659 --- codex-rs/core/src/session/turn_input.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/codex-rs/core/src/session/turn_input.rs b/codex-rs/core/src/session/turn_input.rs index 90e456025e..424faf3c3a 100644 --- a/codex-rs/core/src/session/turn_input.rs +++ b/codex-rs/core/src/session/turn_input.rs @@ -347,9 +347,9 @@ async fn start_if_idle( turn_context.session_telemetry.user_prompt(content); } task_input.push(pending_turn_input(input)); - } else if is_automatic_idle_work { - // Recovery resumes an existing turn, so it must not queue a new empty - // user message for that turn. + } else if is_automatic_idle_work && !matches!(&input, SubmittedTurnInput::UserInput { .. }) { + // Automatic response-item work still needs to be queued, but an empty + // user-input request should start sampling without adding a message. session .input_queue .extend_pending_input_for_turn_state(