Skip to content

fix(model-metadata): follow the models.dev provider split and body-only override wave - #5643

Merged
Astro-Han merged 2 commits into
mainfrom
fix/model-metadata-upstream-shape
Sep 24, 2026
Merged

Astro-Han merged 2 commits into
mainfrom
fix/model-metadata-upstream-shape

Conversation

@Astro-Han

@Astro-Han Astro-Han commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The weekly Model metadata upkeep workflow has failed at the refresh step three weeks in a row (runs 34093584258, 34816157578, 35571361577) before it could open its review pull request, so the committed snapshot trails models.dev by ~120 entries (claude-opus-5-5, GLM-5.3, GPT-6-Luna, …). Two upstream shape changes reject the whole refresh; this PR accepts them and ships the regenerated snapshot the changed mappings require.

Upstream changes accepted:

  • Provider split. models.dev retired kimi-for-coding in favor of kimi-code-plan-cn and kimi-code-plan-global. The kimi-coding-plan access path now reads kimi-code-plan-cn, which serves the official https://api.kimi.com/coding/v1 endpoint — the same URL the old provider row carried — so configured connections keep their base URL and no new access path is introduced.
  • Body-only provider overrides. fireworks-ai/accounts/fireworks/models/minimax-m2p7 now ships a provider override whose only member is body (request-body defaults). Only npm selects a runtime adapter, so an override without npm now projects to no row; unknown override keys still reject the refresh.

Falling out of regenerating the snapshot, the fallback-lifecycle contract (provider catalog contract — fallback lifecycle) caught two offer lists serving models models.dev now marks deprecated or removed: fireworks-ai's derived list now filters deprecated ids like the zenmux derivation and anchors on the live kimi-k3 (was the deprecated kimi-k2p6), and DeepSeek's hand-written list narrows to the current generation deepseek-flash + deepseek-v4-pro. Offers change only; an id a user already chose still sends, and stored hand metadata for the retired ids stays for users who configure them manually.

The regenerated snapshot is bundled because the registry edits reference ids that only exist in the fresh catalog (deepseek-flash), while the workflow's own refresh PR needs the registry fix to pass the lifecycle contract on its own refresh either way — one intent, one PR.

Refs #4398

Verification

  • npm run check:model-metadata-drift — zero projector rejections (was: kimi-for-coding is missing + the m2p7 unsupported override).
  • node scripts/sync-model-metadata.mjs --refresh --accept-upstream-removals and npm run check:model-metadata — both pass from the refreshed snapshot; the snapshot diff carries the new kimi provider facts (same API URL) plus the upstream model wave.
  • Package tests: @maka/core 889 pass / 0 fail, @maka/runtime 3396 pass / 0 fail / 14 skip, packages/runtime-host session-catalog-coordinator + execution-model-composition 107 pass / 0 fail.
  • npm run format and npm run lint pass.

Not run locally: full repository test suite, Desktop E2E, Windows.

Root cause

The upkeep job rejects a catalog whose configured providers cannot be found, which is correct — but its projection pinned a provider id upstream was free to rename (kimi-for-coding), and an override shape it had never seen (body-only) aborted refresh before removal acceptance ever applied. Drift mode tolerated both as findings; refresh mode made them fatal.

Breaking change

Offer lists change for DeepSeek and Fireworks AI new connections: defaults move to the current generation (deepseek-flash, kimi-k3). Existing connections and manually typed ids keep working.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Maka (agent), running the GLM-5.3-Flash model — diagnosed the CI failures against live models.dev data, implemented the projection/registry changes, regenerated the snapshot, and updated the pinned tests.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Does this PR entail a change in behavior?

  • Yes — described under Summary above

@github-actions github-actions Bot added the effort/S Under 100 readable lines label Sep 23, 2026
…ly override wave

The weekly Model metadata upkeep workflow has failed three weeks in a row
(2069716 / 3481615 / 3557136) before opening its review pull request:

- models.dev split the kimi-for-coding provider into kimi-code-plan-cn and
  kimi-code-plan-global. The kimi-coding-plan access path now reads
  kimi-code-plan-cn, whose official endpoint is the kimi.com API URL the
  old provider carried, so configured connections keep their base URL.
- fireworks-ai/models/minimax-m2p7 now ships a provider override with only
  a body member. Only npm selects a runtime adapter, so an override
  without npm projects to no row; unknown override keys still reject.

Regenerating the snapshot surfaced the fallback-lifecycle contract: the
deepseek and fireworks-ai fallback lists were serving models models.dev
now marks deprecated, and the kimi-for-coding model row moved under the
renamed provider. Fireworks derives its list, so it now filters
deprecated ids like the zenmux derivation and anchors on the live
kimi-k3; DeepSeek's hand list narrows to the current generation
(deepseek-flash, deepseek-v4-pro). Offers change only; an id a user
already chose still sends.

The regenerated snapshot bundles the upstream wave this PR's registry
edits reference (e.g. deepseek-flash only exists in the fresh catalog).

Refs #4398

Generated-by: Maka (GLM-5.3-Flash)
@Astro-Han
Astro-Han force-pushed the fix/model-metadata-upstream-shape branch from cfa08b0 to 0c8da28 Compare September 24, 2026 01:31
@Astro-Han
Astro-Han marked this pull request as ready for review September 24, 2026 02:03
… predecessors

The registry's DeepSeek fallback list now recommends deepseek-flash first,
but APPLY_PATCH_MODELS did not carry the id, so new DeepSeek connections
resolved to no ApplyPatch profile while the settings switch still offered
the tool. Resolve and test the profile the same way the previous default
was pinned.

Found by an adversarial review of #5643.

Generated-by: Maka (GLM-5.3-Flash)

@jackwener jackwener left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed 8e01030890705fe0c5642f8f026cc66ff3de1f7b.

No P0–P2.

The weekly refresh was failing on two upstream shape changes, so the snapshot could not update. Mapping kimi-coding-plan to kimi-code-plan-cn keeps the same https://api.kimi.com/coding/v1 URL. A provider override without npm (body-only) now projects to no adapter row; unknown keys still reject the refresh. DeepSeek and Fireworks offer lists move to the current generation; an id a user already chose still sends. deepseek-flash gets the same ApplyPatch default as the V4 Flash line.

Hosted test was not waited on.

简体中文

我审查了 8e01030890705fe0c5642f8f026cc66ff3de1f7b。没有 P0–P2。

kimi-coding-plan 跟到 kimi-code-plan-cn,API URL 没变。没有 npm 的 override 不再整次刷新失败。DeepSeek / Fireworks 新连接的默认列表换成当前代,已选 id 仍能发。本审查没有等 hosted test。


Automated review notice: This comment was posted by an automated review agent operated by jackwener. It is not an independent human review and does not replace one.

@Astro-Han
Astro-Han merged commit 0ab069c into main Sep 24, 2026
1 check passed
@Astro-Han
Astro-Han deleted the fix/model-metadata-upstream-shape branch September 24, 2026 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/S Under 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants