Skip to content

fix(opencode): rotate Zen free DeepSeek id to v4.1 - #17044

Merged
diegosouzapw merged 1 commit into
cheaper-inference:release/v3.8.52from
coqfu:fix/opencode-deepseek-v41-free-alias
Oct 18, 2026
Merged

diegosouzapw merged 1 commit into
cheaper-inference:release/v3.8.52from
coqfu:fix/opencode-deepseek-v41-free-alias

Conversation

@coqfu

@coqfu coqfu commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Summary

OpenCode Zen delisted deepseek-v4-flash-free. The upstream catalog now serves deepseek-v4.1-flash-free and answers the old id with:

[400]: Upstream request failed: Model is unavailable.

The static opencode-zen registry still advertised the dead id, so /v1/models kept exposing it and pinned clients kept selecting it.

Changes

  • Register deepseek-v4.1-flash-free in the OpenCode Zen catalog with deepseek-v4-flash-free as a compatibility alias.
  • Add a built-in deprecation forward (deepseek-v4-flash-free → deepseek-v4.1-flash-free) so existing clients are rewritten before dispatch.
  • Include registry aliases in the MODEL_TO_PROVIDERS inference index. Without this, removing the standalone row made a bare legacy id infer apmix — the only remaining catalog that still lists it — instead of OpenCode.
  • Update the free-model catalog, legacy free-tier fallback, DeepSeek json_schema fallback, benchmark list, and affected tests.

Verification

  • New alias/registry/catalog test: 4/4 pass.
  • model-deprecation*, opencode-free-tier-request-contract, opencode-free-removal-keyed-preservation-16310, opencode-zen-go-shared-models, opencode-executor, opencode-free-tier-routing-shortcircuit-10571: pass.
  • All opencode* unit files: 1056 pass, 1 environment-only failure (prepublish-opencode-plugin-build-skip needs a built dist/, not produced in this checkout).
  • check-open-sse-typecheck: 0 errors.
  • ESLint + Prettier clean on changed files.

Upstream catalog checked 2026-10-18: deepseek-v4.1-flash-free is present; deepseek-v4-flash-free is not.

OpenCode Zen delisted deepseek-v4-flash-free; the upstream catalog now serves
deepseek-v4.1-flash-free and answers the old id with 400 "Model is
unavailable". The static opencode-zen registry still advertised the dead id,
so pinned clients kept selecting it.

Register v4.1 as the catalog row, keep the old id as a registry alias, and add
a built-in deprecation forward so existing clients are rewritten before
dispatch. Include registry aliases in the provider inference index: without
that, removing the standalone row made a bare legacy id infer apmix (the only
remaining catalog that still lists it) instead of OpenCode.

Tests cover the forward, the registry row/alias, the free-model catalog, and
the existing bare-id routing path.
@coqfu
coqfu requested a review from diegosouzapw as a code owner October 18, 2026 07:00
@diegosouzapw
diegosouzapw merged commit af8f1c6 into cheaper-inference:release/v3.8.52 Oct 18, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants