From 255d2b881f14a132f818121ddcba079d2034b70e Mon Sep 17 00:00:00 2001 From: viyatb-oai Date: Mon, 8 Jun 2026 22:39:29 -0700 Subject: [PATCH] fix: centralize Guardian retry budget Co-authored-by: Codex noreply@openai.com --- codex-rs/core/src/guardian/review.rs | 5 ++++- codex-rs/core/src/guardian/review_session.rs | 2 ++ codex-rs/core/tests/suite/guardian_review.rs | 1 - 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/codex-rs/core/src/guardian/review.rs b/codex-rs/core/src/guardian/review.rs index efcc36dbe6..11d372a18d 100644 --- a/codex-rs/core/src/guardian/review.rs +++ b/codex-rs/core/src/guardian/review.rs @@ -697,7 +697,10 @@ async fn run_guardian_review_session_with_retry( .as_ref() .is_some_and(CancellationToken::is_cancelled) { - return (first_outcome, first_analytics_result); + return ( + GuardianReviewOutcome::Error(GuardianReviewError::Cancelled), + first_analytics_result, + ); } session diff --git a/codex-rs/core/src/guardian/review_session.rs b/codex-rs/core/src/guardian/review_session.rs index e90c4015d6..6e131d00a2 100644 --- a/codex-rs/core/src/guardian/review_session.rs +++ b/codex-rs/core/src/guardian/review_session.rs @@ -920,6 +920,8 @@ pub(crate) fn build_guardian_review_session_config( let mut guardian_config = parent_config.clone(); guardian_config.model = Some(active_model.to_string()); guardian_config.model_reasoning_effort = reasoning_effort; + guardian_config.model_provider.request_max_retries = Some(0); + guardian_config.model_provider.stream_max_retries = Some(0); guardian_config.include_skill_instructions = false; guardian_config.base_instructions = Some( parent_config diff --git a/codex-rs/core/tests/suite/guardian_review.rs b/codex-rs/core/tests/suite/guardian_review.rs index 9ba3acac5e..f513494c9e 100644 --- a/codex-rs/core/tests/suite/guardian_review.rs +++ b/codex-rs/core/tests/suite/guardian_review.rs @@ -49,7 +49,6 @@ async fn guardian_retries_a_transient_reviewer_failure() -> Result<()> { let sandbox_policy_for_config = sandbox_policy.clone(); let mut builder = test_codex().with_config(move |config| { config.permissions.approval_policy = Constrained::allow_any(approval_policy); - config.model_provider.stream_max_retries = Some(0); config .set_legacy_sandbox_policy(sandbox_policy_for_config) .expect("set sandbox policy");