From 61ea7360a0e29d6137fbf062c2e10c3a795ece94 Mon Sep 17 00:00:00 2001 From: Rod Boev Date: Sat, 20 Jun 2026 23:56:27 -0400 Subject: [PATCH] fix(#4536): reject openai-codex provider before empty-model early return --- api/config.py | 3 +++ static/panels.js | 1 + tests/test_issue4536_service_tier.py | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/api/config.py b/api/config.py index 7ca3f395..c9732669 100644 --- a/api/config.py +++ b/api/config.py @@ -3513,6 +3513,9 @@ def _main_model_supports_service_tier( """Return True when the current main-model selection can use OpenAI service tier.""" if not _is_openai_family_provider(provider): return False + resolved = str(provider or "").strip().lower() + if resolved == "openai-codex": + return False raw_model = str(model_id or "").strip().lower() if not raw_model: return True diff --git a/static/panels.js b/static/panels.js index 6b63abf4..7bfdd568 100644 --- a/static/panels.js +++ b/static/panels.js @@ -9693,6 +9693,7 @@ function _mainModelSupportsServiceTier(cfg){ const optgroup=selectedOpt&&selectedOpt.parentElement&&selectedOpt.parentElement.tagName==='OPTGROUP'?selectedOpt.parentElement:null; const provider=((selectedOpt&&selectedOpt.dataset&&selectedOpt.dataset.provider)||(optgroup&&optgroup.dataset&&optgroup.dataset.provider)||(cfg&&cfg.provider)||'').trim().toLowerCase(); if(provider!=='openai'&&provider!=='openai-api'&&provider!=='openai-codex') return false; + if(provider==='openai-codex') return false; const rawModel=String((selectedOpt&&selectedOpt.value)||(selected&&selected.value)||(cfg&&cfg.model)||'').trim().toLowerCase(); if(!rawModel) return true; let bareModel=rawModel; diff --git a/tests/test_issue4536_service_tier.py b/tests/test_issue4536_service_tier.py index e0de22f1..97b63023 100644 --- a/tests/test_issue4536_service_tier.py +++ b/tests/test_issue4536_service_tier.py @@ -74,6 +74,11 @@ class TestIssue4536ServiceTier: ) assert codex_payload == {} + codex_empty_model_payload = config._main_model_request_overrides( + {"model": {"provider": "openai-codex", "service_tier": "priority"}}, + ) + assert codex_empty_model_payload == {} + stale_openai_payload = config._main_model_request_overrides( {"model": {"provider": "openai", "default": "meta-llama/llama-3.1", "service_tier": "priority"}}, )