From 023fdbd32c3f43f82c72dbf84e49e13a18a3bba7 Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Mon, 4 May 2026 00:37:30 +0300 Subject: [PATCH] codex: normalize legacy service tier overrides --- codex-rs/core/src/config/config_tests.rs | 22 ++++++++++++++++++++++ codex-rs/core/src/config/mod.rs | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/codex-rs/core/src/config/config_tests.rs b/codex-rs/core/src/config/config_tests.rs index 7f75352654..77067c93d2 100644 --- a/codex-rs/core/src/config/config_tests.rs +++ b/codex-rs/core/src/config/config_tests.rs @@ -6509,6 +6509,28 @@ async fn explicit_null_service_tier_override_sets_fast_default_opt_out() -> std: Ok(()) } +#[tokio::test] +async fn legacy_fast_service_tier_override_maps_to_priority_id() -> std::io::Result<()> { + let fixture = create_test_fixture()?; + + let config = Config::load_from_base_config_with_overrides( + fixture.cfg.clone(), + ConfigOverrides { + cwd: Some(fixture.cwd_path()), + service_tier: Some(Some(ServiceTier::from(SERVICE_TIER_FAST_LEGACY))), + ..Default::default() + }, + fixture.codex_home(), + ) + .await?; + + assert_eq!( + config.service_tier, + Some(ServiceTier::from(SERVICE_TIER_PRIORITY)) + ); + Ok(()) +} + #[tokio::test] async fn service_tier_id_takes_precedence_over_deprecated_service_tier() -> std::io::Result<()> { let fixture = create_test_fixture()?; diff --git a/codex-rs/core/src/config/mod.rs b/codex-rs/core/src/config/mod.rs index de107627fd..300c8af428 100644 --- a/codex-rs/core/src/config/mod.rs +++ b/codex-rs/core/src/config/mod.rs @@ -2667,7 +2667,7 @@ impl Config { let deprecated_config_service_tier = cfg.service_tier.clone().map(normalize_deprecated_service_tier); let service_tier = match service_tier_override { - Some(Some(service_tier)) => Some(service_tier), + Some(Some(service_tier)) => Some(normalize_deprecated_service_tier(service_tier)), Some(None) => { // Preserve explicit standard/clear intent after the nested override // collapses into `Config.service_tier = None`.