From 528fd7ace5ec0a1c2a387dcb9c76a09f3fa011ee Mon Sep 17 00:00:00 2001 From: pakrym-oai Date: Wed, 26 Aug 2026 22:50:31 +0000 Subject: [PATCH] Enable retained-image budgeting by default (#40994) ## What changed - Promote `compaction_image_budget` to stable and enable it by default. - Charge retained images against the remote compaction context budget unless the feature is explicitly disabled, trimming older images as needed. ## Testing - Update remote compaction coverage for the default, explicitly enabled, and explicitly disabled behavior. GitOrigin-RevId: 0f715347cefc33b814bdcfd9b430ef453d3bd6df --- codex-rs/core/tests/suite/compact_remote.rs | 4 ++-- codex-rs/features/src/lib.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/codex-rs/core/tests/suite/compact_remote.rs b/codex-rs/core/tests/suite/compact_remote.rs index c19f60ea91..661caf62b4 100644 --- a/codex-rs/core/tests/suite/compact_remote.rs +++ b/codex-rs/core/tests/suite/compact_remote.rs @@ -1332,7 +1332,7 @@ async fn remote_manual_compact_chatgpt_auth_reuses_service_tier_and_prompt_cache Ok(()) } -#[test_case(None; "default_preserves_images")] +#[test_case(None; "default_trims_images")] #[test_case(Some(false); "disabled_preserves_images")] #[test_case(Some(true); "enabled_trims_images")] #[tokio::test(flavor = "multi_thread", worker_threads = 2)] @@ -1437,7 +1437,7 @@ async fn remote_compact_v2_charges_retained_images_to_token_budget( follow_up.inputs_of_type("compaction")[0]["encrypted_content"], "IMAGE_BUDGET_SUMMARY" ); - let dropped = if image_budget_enabled == Some(true) { + let dropped = if image_budget_enabled.unwrap_or(true) { cycle } else { 0 diff --git a/codex-rs/features/src/lib.rs b/codex-rs/features/src/lib.rs index 3a520f0198..a4d275cac8 100644 --- a/codex-rs/features/src/lib.rs +++ b/codex-rs/features/src/lib.rs @@ -1616,8 +1616,8 @@ pub const FEATURES: &[FeatureSpec] = &[ FeatureSpec { id: Feature::CompactionImageBudget, key: "compaction_image_budget", - stage: Stage::UnderDevelopment, - default_enabled: false, + stage: Stage::Stable, + default_enabled: true, }, FeatureSpec { id: Feature::RetainClientDeveloperMessages,