Repository navigation
[Bug]: reasoningEfforts missing from live catalog for newer opencode-go models (same model has them under other providers) #2410
Description
Client or integration
Codex CLI
Area
Catalog / models
Summary
ocx models live --json and the proxy's own /v1/models omit reasoningEfforts entirely for several opencode-go models, while the same model id exposes a full effort list under other providers. The pattern looks like a static metadata table that lags newly added models.
Effort still appears to be forwarded and honoured at request time, so the impact is on discovery and tooling, not on inference. Tooling that reads the catalog to pick a model or validate an effort before dispatch concludes these models support no reasoning efforts at all, and either skips them or omits the flag. Agent harnesses that select a model programmatically are the main casualty.
Reproduction
-
Ensure the proxy is running and the
opencode-goprovider is configured:ocx status jq -r '.providers | keys | join(", ")' ~/.opencodex/config.json
-
Query the proxy's model catalog directly and compare the same model across providers:
P=$(jq -r .port ~/.opencodex/runtime-port.json) curl -s localhost:$P/v1/models -H 'authorization: Bearer probe' \ | jq -r '.data[]? | select(.id|test("luna|glm-5.3|qwen3.8")) | "\(.id) \(.reasoningEfforts // "no-effort-field")"'
Observed:
gpt-5.6-luna [low, medium(default), high, xhigh, max] kiro/gpt-5.6-luna [low, medium(default), high, xhigh, max] zai-plan/glm-5.3 [low, high, max(default)] opencode-go/gpt-5.6-luna no-effort-field opencode-go/glm-5.3 no-effort-field opencode-go/qwen3.8-max no-effort-fieldglm-5.3is the clearest case: identical model id, populated underzai-plan, empty underopencode-go. -
List every opencode-go model to see that populated and empty rows are interleaved, skewing toward recent additions:
ocx models live --json \ | jq -r '.[] | select(.provider=="opencode-go") | "\(.id)\t[\(.reasoningEfforts // [] | join(","))]"'
glm-5, glm-5.1, glm-5.2 [low,medium,high,xhigh,max] glm-5.3 [] <-- newest in family qwen3.5-plus … qwen3.7-plus [low,medium,high,xhigh,max] qwen3.8-max [] <-- newest in family deepseek-v4-flash, -pro [high,xhigh,max] kimi-k3 [low,high,max] kimi-k2.5 / k2.6 / k2.7-code [] gpt-5.6-luna [] grok-4.5 / 4.6, hy3 [] minimax-m2.5 / m2.7 / m3 [] -
Confirm the effort parameter is still forwarded despite the missing metadata:
P=$(jq -r .port ~/.opencodex/runtime-port.json) for eff in low max; do curl -s -X POST localhost:$P/v1/responses \ -H 'content-type: application/json' -H 'authorization: Bearer probe' \ -d "{\"model\":\"opencode-go/gpt-5.6-luna\",\"input\":\"Think carefully: how many ways can 8 non-attacking rooks be placed on an 8x8 board? Answer with just the number.\",\"stream\":false,\"reasoning\":{\"effort\":\"$eff\"}}" \ | jq -r '"'"'effort: reasoning_tokens=\(.usage.output_tokens_details.reasoning_tokens)'"'"' done
low -> reasoning_tokens=31 max -> reasoning_tokens=42One sample each, so this is not a claim about how well
maxis honoured — only that the parameter is not dropped. The metadata gap therefore looks cosmetic rather than functional.
Expected: reasoningEfforts is populated for opencode-go models that accept a reasoning effort, consistently with the same model under zai-plan / kiro / native.
Actual: the field is absent for those rows.
Version
opencodex 2.29.0
Operating system
Ubuntu 24.04.4 LTS (WSL2, kernel 6.18.33.2-microsoft-standard-WSL2)
Provider and model
opencode-go / gpt-5.6-luna, opencode-go / glm-5.3, opencode-go / qwen3.8-max (compared against zai-plan / glm-5.3, kiro / gpt-5.6-luna, native gpt-5.6-luna)
Logs or error output
No error is emitted; the field is silently absent from /v1/models and from ocx models live --json. Sample output is inline in Reproduction above.
Related but distinct: #962 (custom model rows dropping provider reasoning metadata) concerns custom rows, whereas this is live rows for a registry provider. #2406 looks like the same class of gap for image capabilities.
Activity
lidge-jun commentedon Aug 22, 2026
리뷰 · 우선순위 44 / 80
설명: 이 이슈는 오픈코드 고 새 모델의 노력 칸이 목록에 비어 있다고 한다. 같은 모델 이름은 다른 제공자에서는 칸이 있다. 지금 CURRENT
devHEAD 는4f41a8e93이다. 이번 시간에 origin/dev 는 46d4150 에서 한 커밋이 와서 여기까지 왔다. 착지는 2396 사용량 CLI 오늘 비용이다. package.json 은 2.27.0 이다. src/config.ts 는 3975줄이다. src/runtime 폴더는 지금 HEAD 에 없다. 지금 HEAD 의 src/providers/registry.ts 1361줄 opencode-go modelReasoningEfforts 는 glm-5.3 에 ZAI_GLM_53_REASONING_EFFORTS 곧 low, high, max 가 있다. 작성자가 2.29.0 에서 본 빈 glm-5.3 은 지금 origin/dev 표와 다르다. gpt-5.6-luna 는 그 표에 없다. 1346줄은 루나 와이어만 responses 로 둔다. 노력 칸은 안 넣는다. qwen3.8-max 도 없다. OPENCODE_GO_THINKING_BUDGET_MODELS 는 qwen3.5-plus 부터 qwen3.7-plus 까지다. 3.8 은 알리바바 표에만 있다. 작성자는 요청 때 effort 가 실제로 간다고 적었다. 목록만 비다. src/server/index.ts 1197줄 공개 목록은 m.reasoningEfforts 가 있을 때만 칸을 붙인다. 표가 비면 칸이 빠진다. 작성자 버전은 2.29.0 이다. 지금 origin/dev 패키지는 2.27.0 이다. PR 이 아직 없다. bug, catalog 라벨이 있다. 2406 은 이미지 칸이다. 사용자 길이로는 목록이 노력을 못 고르게 하는 표 구멍이라서 44. 호출 자체는 된다. 카탈로그 팁은 Ox Alpha x-preview-f-free + deepseek-v4-flash-vision-exp. Cursor 정적 카탈로그는 opus-4-8-fast / opus-5-fast. 2334 CursorCredentialRouter 는 여전히 src/providers/cursor-pool.ts 모듈+테스트만 있고 어댑터에 연결되지 않았다. 2332 H2 는 discovery 전용. 2320 overflow + 2342 는 이미 dev. 2188 사이드카는 이미 dev. 2382 데스크톱 앱 재시작은 이미 dev. 2292 는 아직 연다.src/providers/registry.ts 라인 1361 - 지금 HEAD 의 opencode-go 노력 표. glm-5.3 은 이미 low, high, max. luna 와 qwen3.8-max 는 없다
src/providers/registry.ts 라인 444 - OPENCODE_GO_THINKING_TOGGLE_MODELS 는 mimo-v2.5, glm-5, glm-5.1 이다. glm-5.3 은 여기가 아니라 1362줄 단독이다
src/providers/registry.ts 라인 468 - OPENCODE_GO_THINKING_BUDGET_MODELS 는 qwen3.7-plus 에서 끝난다. qwen3.8-max 는 없다
src/providers/registry.ts 라인 1346 - luna 는 와이어만 responses 다. 노력 칸은 안 넣는다
src/server/index.ts 라인 1197 - 공개 목록은 reasoningEfforts 가 있을 때만 칸을 붙인다. 표가 비면 칸이 빠진다
이슈 본문 2.29.0 - 작성자가 본 glm-5.3 빈 칸은 지금 HEAD 표와 다르다. luna 와 qwen3.8-max 구멍은 지금 HEAD 에도 있다
메인테이너의 판단이 필요한 지점
너의 추천
호출 길을 건드리지 말고, 증거가 있는 모델만 opencode-go 노력 표에 넣는 작은 PR 을 받는다. glm-5.3 은 지금 HEAD 에 있으니 다시 넣지 말 것. 이슈는 열어 둔다. 라벨은 그대로 둔다. 프리뷰 배포가 아니다.
이 댓글은 grok-bot이 작성했습니다
fix: catalog effort ladders, v2 pin precedence, and combo owned_by (#…
lidge-jun commentedon Aug 25, 2026
Fixed on
devby #2630 (squash324c1aa87).Your suspicion was right: a static table lagging newly added models.
gpt-5.6-lunaandqwen3.8-maxwere missing from opencode-go's registry map while the same model ids carried full ladders under OpenAI API and Alibaba Token Plan — which is exactly the asymmetry you described.Your impact analysis was also right and is why this was worth fixing properly: support is inferred from a non-empty catalog ladder (
src/server/management/shared.ts:260), so a harness selecting programmatically concludes these models support no efforts at all.I did not want to just fill today's holes, because the same gap would reappear with the next model. So this also adds a cross-provider parity check: a same-model ladder mismatch now fails a test instead of waiting for a report. The generated-metadata pipeline can't cover this — it discards source
thinkingladders and keeps only a booleanreasoningflag — so the registry stays the source of truth, but the asymmetry is now detectable.Thanks for noting that inference still worked; that framing made it clear this was a discovery defect and kept the fix narrow.
fix: catalog effort ladders, v2 pin precedence, and combo owned_by (l…
fix: catalog effort ladders, v2 pin precedence, and combo owned_by (l…