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),