Repository navigation
[Feature]: surface Codex Ultrafast for Sol and Daybreak Blue fallback catalogs #2993
Description
Area
Catalog / models
What are you trying to accomplish?
Use Codex's new model-scoped Ultrafast speed tier through OpenCodex for gpt-5.6-sol and the existing Daybreak Blue capability alias, while keeping the existing Fast tier available.
A current Codex 0.151 catalog describes speed choices as model-owned service_tiers. When the catalog contains ultrafast, Codex can select it and sends service_tier: "ultrafast"; OpenCodex's canonical OpenAI Responses path already preserves that caller value when the global Fast override is left on Auto.
What prevents this today?
OpenCodex's bundled fallback snapshot in src/codex/data/upstream-models.json still gives gpt-5.6-sol only the priority / Fast row. gpt-daybreak-blue-latest inherits that pinned Sol capability row, so a fresh/static fallback catalog also offers only Fast.
A newer live Codex catalog can mask the gap: on this host both Sol and Daybreak Blue already contain priority and ultrafast. However, OpenCodex must also work when a newer live row is unavailable, a cache is rebuilt, or the installed Codex predates the tier metadata. In those cases the bundled fallback silently removes Ultrafast from the picker.
What should OpenCodex do?
- Keep the existing
priority/ Fast entry unchanged. - Add the current Codex
ultrafastservice-tier descriptor to the pinned Sol fallback. - Let the existing Daybreak Blue capability alias inherit the same Sol tier set, without creating entitlement or exposing an unqualified Daybreak row to an account that does not report it.
- Preserve
service_tier: "ultrafast"on the canonical OpenAI Responses path when OpenCodex is in passthrough/Auto mode. - Do not advertise Ultrafast for Terra, Luna, Spark, arbitrary routed providers, or any model whose catalog does not declare it.
Example usage or interface
{
"slug": "gpt-5.6-sol",
"service_tiers": [
{ "id": "priority", "name": "Fast", "description": "1.5x speed, increased usage" },
{ "id": "ultrafast", "name": "Ultrafast", "description": "The fastest available responses for latency-sensitive work." }
]
}An entitled Daybreak Blue row should expose the same two choices through its existing Sol capability inheritance. Selecting Ultrafast in Codex should reach the canonical upstream body as:
{ "service_tier": "ultrafast" }Alternatives or workarounds
Keep a recent Codex-generated models_cache.json and rely on OpenCodex preserving that live row. This is not reliable for clean installs, fallback generation, cache rebuilds, or older installed clients, and makes the feature depend on stale local state.
A global OpenCodex fastMode enum was also considered, but that would widen configuration, management API, CLI, GUI, docs, and routing semantics. The current model-owned Codex selector already carries arbitrary service-tier ids, so the minimal compatible slice is catalog fallback parity plus a passthrough regression.
Additional context
- Official OpenAI Responses schema:
service_tier: "ultrafast"is the access-controlled Ultrafast tier and is currently available for GPT-5.6 Sol: https://developers.openai.com/api/reference/resources/responses/methods/create - Official OpenAI changelog (2026-08-13): Ultrafast announced for GPT-5.6 Sol: https://developers.openai.com/api/docs/changelog#august-2026
- Official Daybreak Blue model page: current snapshot is GPT-5.6 Sol and the supported endpoint is Responses: https://developers.openai.com/api/docs/models/gpt-daybreak-blue-latest
- Current Codex model source at
openai/codex@dde85b435b16994f956bce08e5fb796ed94c27fdincludes bothpriorityandultrafastongpt-5.6-sol.
Checks
- I searched existing issues and documentation.
- This request describes a concrete OpenCodex workflow rather than merely naming a desired technology.
- I removed secrets and personal data.
Activity
Ingwannu commentedon Aug 30, 2026
I am taking the minimal compatibility slice described above: refresh only the pinned Sol service-tier metadata from the current Codex source, verify Daybreak Blue inherits it through the existing entitlement-gated capability alias, and add regressions for canonical Responses passthrough plus non-advertisement on unsupported models. I will not add a new global speed setting or broaden routed-provider tier capability in this PR.
lidge-jun commentedon Aug 30, 2026
리뷰 · 우선순위 57 / 80
설명
지금 CURRENT
devHEAD 는641466db6이다. 이 이슈가 열린 뒤에 합쳐진 것은 #2985 grok-4.20-multi-agent 캐리, #2954 프로비넌스 장부 바이트 한도, HEAD 의 #2984 테스트 락 사용자 격리이다. package.json 은 2.36.0 이다. types.ts / config.ts 쪼개기와는 겹치지 않는다. 닫고 다시 짜라고 하지 않는다. 미리보기 배포도 이 요청과 무관하다.이 이슈는 Codex 가 모델마다 가진 속도 칸
service_tiers안에ultrafast를 넣어서, GPT-5.6 Sol 과 그 능력 별명인 Daybreak Blue 가 깨끗한 설치와 폴백 카탈로그에서도 Ultrafast 를 고를 수 있게 하자는 요청이다. 라이브/models가 있으면 그 목록이 가릴 수 있다. 그러나 묶여 있는 폴백src/codex/data/upstream-models.json이 권위가 되면 피커에서 Ultrafast 가 사라진다. 캐시를 다시 만들거나, 설치한 Codex 가 티어 메타데이터보다 오래되었거나, 깨끗한 집이면 그 폴백이 권위다.지금 폴백 스냅샷을 보면
gpt-5.6-sol108-113줄service_tiers는priority/ Fast 한 줄뿐이다.additional_speed_tiers115-117줄은["fast"]뿐이다.ultrafast문자열은 이 JSON 에 없다. Terra 224줄, Luna 336줄도 Fast 한 줄이다. Spark 쪽 659줄은 빈 배열이다. 이슈가 말하는 Terra, Luna, Spark, 라우트된 제공자에는 올리지 말 것과 지금 HEAD 는 이미 맞다. 고칠 곳은 Sol 폴백 한 줄이다.Daybreak Blue 는
src/codex/data/upstream-models.json에 자기 행이 없다.src/codex/catalog/native-models.ts25줄NATIVE_OPENAI_CAPABILITY_SOURCES가gpt-daybreak-blue-latest를gpt-5.6-sol에 붙인다.src/codex/catalog/metadata.ts464-488줄upstreamNativeEntryForSlug가 Sol 행을structuredClone한 뒤 슬러그와 표시 이름만 바꾼다. 그래서 Sol 폴백에 ultrafast 를 넣으면 Daybreak 별명도 같은 칸을 물려받는다. 자격 없는 계정에 맨 Daybreak 행을 새로 심는 일이 아니다.ACCOUNT_GATED_NATIVE_OPENAI_MODELS가 자격 검사를 그대로 둔다.전송 면은 이슈가 말한 대로 Auto 에서 대체로 통과한다.
src/providers/fastwire.ts19-22줄 기본foreignCallerTiers는verbatim이다.canonicalFastTierMarker239-241줄은priority와fast만 Fast 로 본다.ultrafast는 외국 값이다.decideTier397-427줄은 Auto(fastMode가 undefined) 이면forward-caller를 돌려 호출자 값을 남긴다.src/adapters/openai-responses.ts1150-1156줄applyTierDecisionToResponsesBody는forward-caller이면 본문을 안 고친다.src/server/responses/core.ts2525-2561줄applyServiceTierGate의 외국 값 삭제는foreignCallerTiers === "drop"일 때만이다. 기본 OpenAI 선은 drop 이 아니다.그래도 구멍이 하나 있다. 전역 Fast 가 켜지면
decideTier406-410줄이canonicalToWire.priority로service_tier를priority로 덮어 쓴다. Ultrafast 를 고른 호출이 Fast 강제에 먹힌다. Auto 패스스루만으로는 고른 Ultrafast 가 그대로 나간다 가 항상 참이 아니다.라우트된 행은
src/codex/catalog/parsing.ts609-623줄normalizeRoutedCatalogEntry가service_tiers를 지운다.src/codex/catalog/effort.ts160-168줄은supportsServiceTier === true인 라우트 행에 Fast 한 줄만 다시 찍는다. ultrafast 를 여기 전역으로 넣으면 이슈가 금지한 라우트 광고가 된다. 넣지 말 것. Spark 는parsing.ts300-311줄NO_FAST_TIER_NATIVE_SLUGS가 티어를 지운다. 거기도 손대지 말 것.라인 108-113 -
src/codex/data/upstream-models.json의gpt-5.6-sol폴백service_tiers가 priority/Fast 한 줄이라 깨끗한 설치에서 Ultrafast 피커가 없다라인 115-117 - 같은 행의
additional_speed_tiers가["fast"]뿐이라, Codex 설정 철자가 이 칸을 보면 ultrafast 도 빠진다. 같이 넣을지 정해야 한다경로
src/codex/catalog/metadata.tsupstreamNativeEntryForSlug- Daybreak 는 Sol 복제라 Sol 만 고치면 된다.upstream-models.json에 Daybreak 행을 새로 넣으면 자격 없는 계정에 맨 행이 생긴다경로
src/providers/fastwire.tsdecideTierfastMode===true- Ultrafast 호출을 priority 로 덮는다. Auto 패스스루 회귀만으로는 부족할 수 있다경로
src/codex/catalog/effort.ts160-168 /parsing.tsnormalizeRoutedCatalogEntry- 라우트 Fast 스탬프와 스트립은 그대로 둬야 한다. ultrafast 를 전역 메타데이터에 넣지 말 것경로
tests/codex-catalog.test.ts2606-2621 - 라우트supportsServiceTier핀은 Fast 한 줄이다. Sol 네이티브 폴백에 ultrafast 두 칸이 생기는 핀은 아직 없다메인테이너의 판단이 필요한 지점
additional_speed_tiers에 ultrafast 철자를 넣을지,service_tiers배열만으로 충분한지너의 추천
이슈를 연 채로 받는다. 구현은 Sol 폴백
service_tiers에 이슈가 적은 ultrafast 행을 더하고, Daybreak 는 기존 Sol 상속을 타게 둔다. Terra/Luna/Spark/라우트에는 넣지 않는다. 테스트로 (1) Sol 폴백에 두 칸, (2) Daybreak 클론이 같은 칸, (3) Terra/Luna/Spark 와 라우트 행에 ultrafast 없음, (4) Auto 에서service_tier: "ultrafast"가 본문에 남는 것을 잠근다. 전역 Fast 덮어쓰기는 한 줄로 정한 뒤 회귀에 적는다. 라벨은 그대로 둔다.이 댓글은 grok-bot이 작성했습니다
Ingwannu commentedon Aug 30, 2026
Implementation is now open as #2994 and
@lidge-junhas been requested for review.The PR follows the current Codex source shape exactly:
ultrafastis added only to Sol's model-ownedservice_tiers,additional_speed_tiersremains["fast"], and Daybreak Blue inherits the Sol capability only through the existing account-entitlement gate. The explicit global Fast override still selectspriority; Auto/passthrough preserves a caller-selectedultrafast.Focused tests (253/253), typecheck, the CPU-bounded full suite, and the 401-page docs build are green. I am leaving this issue open until the reviewed PR lands on
dev.lidge-jun commentedon Aug 30, 2026
Ultrafast는 프런트 노출 오류다. 폴백 카탈로그에 칸을 넣으면 고를 수는 있는데, 실제 Ultrafast 속도가 나오지 않는다. 백엔드가 깨져서가 아니다.
지금은 올리지 않는다. 구현 PR #2994도 닫는다. 실제 속도가 나올 때 다시 연다.
이 댓글은 grok-bot이 작성했습니다