Repository navigation
[Provider compatibility] Baseten catalog advertises unsupported Responses text.verbosity #4630
Description
Client or integration
Codex App
Provider or upstream service
Baseten Model APIs (baseten)
OpenCodex version
Reproduced with @bitkyc08/opencodex 2.42.0. The Baseten registry entry still lacks a verbosity opt-out on current main / package version 2.55.0.
Endpoint or capability
Inbound /v1/responses conversion to Baseten /v1/chat/completions; text.verbosity capability metadata.
Current behaviour
The generated Codex catalog advertises verbosity support for baseten/deepseek-ai-DeepSeek-V4.1-Flash:
{
"slug": "baseten/deepseek-ai-DeepSeek-V4.1-Flash",
"support_verbosity": true,
"default_verbosity": "low"
}Codex consequently includes text.verbosity in its Responses request. OpenCodex rejects the request while converting it to the Baseten Chat Completions route, before any model output is produced.
The selected high value is the reasoning effort and is unrelated to the rejected verbosity field.
Expected behaviour
Baseten documents its Model APIs as OpenAI Chat Completions compatible. The routed catalog should therefore not advertise the Responses-only text.verbosity capability unless OpenCodex can translate it. The request should omit that field and proceed normally.
Minimal redacted request or reproduction
# OpenCodeX 2.42.0; Baseten provider configured with a valid redacted API key.
ocx sync
# In Codex App:
# 1. Select baseten/deepseek-ai-DeepSeek-V4.1-Flash.
# 2. Select reasoning effort "high".
# 3. Start a turn with: Reply with OK.
# Relevant request shape produced by Codex from the generated catalog:
POST /v1/responses
{
"model": "baseten/deepseek-ai-DeepSeek-V4.1-Flash",
"input": "Reply with OK.",
"reasoning": { "effort": "high" },
"text": { "verbosity": "low" }
}Actual response or error
HTTP 400
{
"error": {
"code": "400",
"message": "Validation: Failed to convert responses request: `text.verbosity` is not supported",
"type": "Bad Request"
}
}Upstream documentation
Baseten Model APIs overview: https://docs.baseten.co/inference/model-apis/overview
Baseten Chat Completions reference: https://docs.baseten.co/reference/inference-api/chat-completions
These pages specify OpenAI Chat Completions compatibility. I found no public Baseten specification for the OpenAI Responses API or its text.verbosity field.
Suggested mapping or implementation notes
Declare the capability on the Baseten provider registry entry:
{
id: "baseten",
// ...
supportsVerbosity: false,
}The generated entry should then contain "support_verbosity": false and omit default_verbosity. A focused catalog regression test for a live-discovered Baseten model would cover the provider-wide fallback.
Additional context and attachments
Environment: macOS 26.6.2, codex-cli 0.154.0. Current main version 2.55.0 still has no supportsVerbosity declaration in the Baseten registry entry. Existing issues were searched for Baseten, text.verbosity, and this model ID; no duplicate was found.
Checks
- I searched existing provider and compatibility issues.
- The request and response were redacted.
- The expected behaviour is based on an upstream specification or a concrete client requirement.
Activity
github-actions commentedon Sep 14, 2026
Issue reopened
The report now contains the information required by the automated check. Thanks for updating it.
lidge-jun commentedon Sep 14, 2026
리뷰 · 우선순위 56 / 80
이 이슈는 Baseten Model APIs(
baseten)로 라우트된 모델이 Codex 카탈로그에서support_verbosity: true/default_verbosity: "low"처럼 보이기 때문에, Codex App이 Responses 요청에text.verbosity를 넣고, OpenCodex가 Chat Completions로 바꿀 때text.verbosity` is not supported로 400을 내는 호환 버그다. 재현 모델은baseten/deepseek-ai-DeepSeek-V4.1-Flash이고, 사용자가 고른 reasoning efforthigh와는 무관하다.현재
devHEAD00f1762d0(2.56.0)의src/providers/registry.tsbaseten 엔트리(대략 id"baseten",adapter: "openai-chat",baseUrl: "https://inference.baseten.co/v1")를 보면parallelToolCalls,reasoningEfforts: [],modelReasoningEfforts/ vision 힌트(BASETEN_MODEL_*)는 있다. 하지만supportsVerbosity: false는 없다. 같은 파일에서 xAI 계열과 Ollama는 이미 provider-wide로supportsVerbosity: false를 박아 두고, 주석도 “Responses 전용text.verbosity가 문서 API에 없다 / live discovery로 나중에 오는 id도 같이 opt-out”이라고 설명한다. Baseten만 그 패턴이 빠져 있다.카탈로그 쪽 경로는 이미 준비되어 있다.
src/providers/derive.ts의applyVerbosityDefaults가 레지스트리supportsVerbosity/modelSupportsVerbosity를 provider config에 심고,src/codex/catalog/provider-fetch.ts의configuredVerbositySupport→ 모델 객체supportsVerbosity,src/codex/catalog/effort.ts가entry.support_verbosity로 내린다. 즉 이슈에 적힌 한 줄을 baseten 엔트리에 넣으면, live discovery로 새 슬러그가 와도 provider-wide opt-out이 따라가고 Codex는 verbosity를 광고하지 않아야 한다. Baseten 공식 문서도 Chat Completions 호환이지 Responses/
text.verbosity스펙이 아니다(이슈에 링크됨).우선순위 56인 이유: 첫 턴이 모델 출력 전에 400으로 막히므로 체감은 크지만, 수정면은 레지스트리 플래그 + 카탈로그 회귀 테스트 수준이고 #4546 cost-guard나 Astra reasoning.summary 누락(#4628)보다 범위가 좁다. 중복 이슈 검색 결과도 보고자 기준으로 없다. types.ts/config.ts 분할 캠페인과도 무관해서 close-don't-rebase 대상이 아니다.
경로/src/providers/registry.ts baseten 엔트리 -
supportsVerbosity필드 자체가 없어 Codex 템플릿 기본(verbosity 지원처럼 보임)을 물려받는다.경로/src/providers/derive.ts applyVerbosityDefaults -
supportsVerbosity === undefined이면 early return이라, 레지스트리에 명시하지 않으면 opt-out이 절대 안 심어진다.경로/src/codex/catalog/effort.ts -
support_verbosity는 모델 boolean이 있을 때만 쓴다. false를 안 내리면 클라이언트 쪽이 기본 true처럼 동작할 수 있다.심볼/BASETEN_MODEL_REASONING_EFFORTS - reasoning 힌트는 slug별로 보수적으로 관리하는데 verbosity만 provider-wide 기본이 비어 있어 정책이 비대칭이다.
경로/테스트 - live-discovered Baseten 모델에 대한
support_verbosity: false카탈로그 회귀가 이슈 제안대로 아직 없다(현 checkout 기준 이 이슈 전용 테스트 없음).메인테이너의 판단이 필요한 지점
supportsVerbosity: false로 갈지, 특정 slug만modelSupportsVerbosity로 막을지(문서상 Chat Completions면 provider-wide가 맞음)너의 추천
src/providers/registry.tsbaseten 블록에supportsVerbosity: false를 추가하고, xAI/Ollama 주석과 같은 “Responses 전용 필드, live discovery 상속” 한 줄을 남긴다. live-discovered baseten 모델 한 건에support_verbosity === false인 카탈로그 스냅샷/유닛 테스트를 붙인 좁은 PR이면 충분하다. 이 이슈는 열어 두고 그 PR에Fixes #4630을 연결한다. 지금은 중복이 아니므로 close하지 않는다.이 댓글은 grok-bot이 작성했습니다
fix(providers): Baseten routed rows must not advertise text.verbosity
fix(providers): Baseten routed rows must not advertise text.verbosity
fix(providers): Baseten routed rows must not advertise `text.verbosit…
Ingwannu commentedon Sep 15, 2026
Fixed on
devby #4660, merge commita6cc5e2cd23c5181846880936f1c1cbd4b620411. Baseten now has a provider-widesupportsVerbosity: false, so both static and newly live-discovered rows stop advertising the Responses-only control and omitdefault_verbosity. Exact-head cross-platform CI passed before merge. This landed after the 2.56.0 promotion, so users need the next release from the 2.57.0 development line; 2.56.0 does not contain this fix.fix(providers): Baseten routed rows must not advertise `text.verbosit…