Repository navigation
fix(providers): route Muse Spark to the Responses API on opencode-zen and opencode-go too - #11049
Conversation
… too cheaper-inference#10874 added targetFormat:"openai-responses" to the opencode provider's muse-spark entries, but opencode-zen (a separate registry entry for the same upstream, opencode.ai/zen/v1) never got the same declaration -- requests routed there still hit /chat/completions and the upstream returns an empty message with no error. Mirrors the opencode provider's own muse-spark-1.2 / muse-spark-1.2-contributor-free entries onto opencode-zen.
|
Nice, clean fix — thanks. This correctly closes the gap where opencode-zen and opencode-go (separate registry entries for the same opencode.ai/zen/v1 upstream) never got the |
666e4aa
into
cheaper-inference:release/v3.8.50
…entries (#11051) ⭐5 — Dedupe dos 3 entries byte-idênticos (kimi-k2.7-code, qwen3.5-plus, qwen3.6-plus) entre opencode-zen e opencode-go via OPENCODE_ZEN_GO_SHARED_MODELS (padrão GLM_SHARED_MODELS), frozen e testado por deep-equal. Pure move, sem mudança de comportamento; check:provider-consistency OK (267 entries, 348 providers). TDD 3/3. Follow-up de #11049/#11048. Base-red #9985 inherited.
…erlay (#11051/#11049) (#11133) Validated on the combined batch board over release/v3.8.50 tip d91238b: static gates clean, typecheck:core clean, focused tests green. Restores the models[0] dashboard default silently changed by #11051, with narrow guards instead of a brittle full snapshot. Thank you @maxmad64bis!
… too (cheaper-inference#11049) ⭐5 — Muse Spark responde só na Responses API; cheaper-inference#10874 corrigiu só o provider `opencode`, mas `opencode-zen` (faltava targetFormat em 2 entries) e `opencode-go` (6 entries effort-tier) nunca receberam. Espelha a declaração. freebuff NÃO tocado (backend codebuff.com /chat/completions distinto, verificado). TDD 2/2 + 18/18 irmãos. Fecha cheaper-inference#11048. Base-red cheaper-inference#9985 inherited.
…entries (cheaper-inference#11051) ⭐5 — Dedupe dos 3 entries byte-idênticos (kimi-k2.7-code, qwen3.5-plus, qwen3.6-plus) entre opencode-zen e opencode-go via OPENCODE_ZEN_GO_SHARED_MODELS (padrão GLM_SHARED_MODELS), frozen e testado por deep-equal. Pure move, sem mudança de comportamento; check:provider-consistency OK (267 entries, 348 providers). TDD 3/3. Follow-up de cheaper-inference#11049/cheaper-inference#11048. Base-red cheaper-inference#9985 inherited.
…erlay (cheaper-inference#11051/cheaper-inference#11049) (cheaper-inference#11133) Validated on the combined batch board over release/v3.8.50 tip 0f43f0f: static gates clean, typecheck:core clean, focused tests green. Restores the models[0] dashboard default silently changed by cheaper-inference#11051, with narrow guards instead of a brittle full snapshot. Thank you @maxmad64bis!
Summary
#10874 fixed Muse Spark on the
opencodeprovider by declaringtargetFormat: "openai-responses"on its registry entries — the model only answers on the Responses API, not/chat/completions. Same upstream family, two more provider registries never got the memo:opencode-zen—muse-spark-1.2had notargetFormat;muse-spark-1.2-contributor-freewasn't even declared.opencode-go— all 6muse-spark-1.2-contributor*effort-tier entries had notargetFormat.Both share the same executor (
opencode) and the same upstream family (opencode.ai/zen/*) as the provider #10874 already fixed, so it's the same bug, just three separate copies of the same registry data drifting independently. Mirrored the same declaration onto both.Left
freebuff'smeta/muse-spark-1.2-contributoralone — verified: distinct backend (codebuff.com, dedicatedfreebuffexecutor posting to/chat/completions, no Responses API), so the same fix doesn't apply there.Related Issues
Validation
open-sse/config/providers/registry/opencode/{zen,go}/index.ts)node --import tsx/esm --test tests/unit/opencode-zen-muse-spark-targetformat-11046.test.ts— 2/2opencode-zen-reasoning-effort,opencode-zen-alias-combo-e2e,auth-opencode-zen-noauth-fallback) — 18/18 totalnpm run lintcleanrelease/v3.8.50tipTests Added Or Updated
tests/unit/opencode-zen-muse-spark-targetformat-11046.test.ts:opencode-zen'smuse-spark-1.2andmuse-spark-1.2-contributor-freeboth resolve totargetFormat: "openai-responses"opencode-gomuse-spark effort-tier entries do tooCoverage Notes
Registry data only — no logic changes, covered by the assertions above plus the full existing test suite for both registries.
Reviewer Notes
Didn't touch
freebuff— verified it's a genuinely different backend (codebuff.com/chat/completions, dedicated executor, no Responses API involved), so the same fix doesn't apply; not a guess.This is the second copy of this exact bug found in two days (see #11046/#11047) — same upstream registered under 3 provider entries with no shared source of truth for per-model capability flags, so a fix to one silently doesn't cover the others. Follow-up de-duplication opened as #11051 (extracts the entries that were already byte-identical across
opencode-zen/opencode-gointo a shared array).