From f25b854e283ff487e012cbbee03afc7534ca6937 Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Thu, 7 May 2026 06:37:10 +0300 Subject: [PATCH] codex: fix app-server service tier overrides Split string service tier requests into legacy service_tier and service_tier_id config overrides so arbitrary tier ids keep flowing through the app-server path. Co-authored-by: Codex --- codex-rs/app-server/src/request_processors.rs | 1 + .../src/request_processors/thread_processor.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/codex-rs/app-server/src/request_processors.rs b/codex-rs/app-server/src/request_processors.rs index 795b5d4c32..1ab6b0f9be 100644 --- a/codex-rs/app-server/src/request_processors.rs +++ b/codex-rs/app-server/src/request_processors.rs @@ -343,6 +343,7 @@ use codex_protocol::ThreadId; use codex_protocol::config_types::CollaborationMode; use codex_protocol::config_types::ForcedLoginMethod; use codex_protocol::config_types::Personality; +use codex_protocol::config_types::ServiceTier; use codex_protocol::config_types::TrustLevel; use codex_protocol::config_types::WindowsSandboxLevel; use codex_protocol::dynamic_tools::DynamicToolSpec as CoreDynamicToolSpec; diff --git a/codex-rs/app-server/src/request_processors/thread_processor.rs b/codex-rs/app-server/src/request_processors/thread_processor.rs index d83f5e631f..58968dfe86 100644 --- a/codex-rs/app-server/src/request_processors/thread_processor.rs +++ b/codex-rs/app-server/src/request_processors/thread_processor.rs @@ -1193,10 +1193,22 @@ impl ThreadRequestProcessor { developer_instructions: Option, personality: Option, ) -> ConfigOverrides { + let (service_tier, service_tier_id) = match service_tier { + Some(Some(service_tier)) => { + let legacy_service_tier = ServiceTier::from_request_value(&service_tier); + let service_tier_id = legacy_service_tier + .map(|service_tier| service_tier.request_value().to_string()) + .unwrap_or(service_tier); + (Some(legacy_service_tier), Some(Some(service_tier_id))) + } + Some(None) => (Some(None), Some(None)), + None => (None, None), + }; let mut overrides = ConfigOverrides { model, model_provider, service_tier, + service_tier_id, cwd: cwd.map(PathBuf::from), approval_policy: approval_policy .map(codex_app_server_protocol::AskForApproval::to_core),