fix(models): publish effort_tiers on Kimi K3 base models only - #12371
diegosouzapw merged 1 commit into
Conversation
|
Thanks for covering the Kimi K3 catalog gap. The Kimi-specific behavior is proven by the focused tests, and the full focused set passed 47/47 in a synthetic merge. Please address these items before we approve the fork workflows:
After the head is updated, I will approve the fork-triggered workflows and revalidate the exact candidate on the current release tip. |
a97affb to
8d6c500
Compare
|
Thanks for the detailed review. All four points are addressed in the updated head (
Ran the specs on the updated head: 24/24 on the two focused files, 54/54 on the related effort-tier suites, and typecheck/lint are clean. |
8d6c500 to
7cc44c2
Compare
…ouzapw#12299) The isSkippedEffortProvider gate in effectiveEffortTiers() suppressed effort_tiers on the BASE model for providers that own a conflicting -{effort} suffix mechanism (kimi, codex, glm), leaving catalog-only clients (OpenCode, plain SDK pickers) with no tiers to copy — e.g. the kmca catalog's k3/k3-256k entries carry supportedThinkingEfforts ["low","high","max"] in synced metadata but published no effort_tiers. The gate is restored for codex, glm, and non-K3 kimi models exactly as before; only Kimi K3 base-model entries (k3, k3-256k on kimi-owned providers) are exempted, so the diegosouzapw#7694 exclusion contract is unchanged for everything else and synthetic <id>-<tier> variant generation stays prevented in shouldExposeSyncedEffortVariants. Reverted tests/unit/synced-capabilities-learned-effort-override.test.ts to its original codex/glm/kimi exclusion assertions and kept the dedicated Kimi K3 regression coverage in tests/unit/kimi-k3-effort-tiers-12299.test.ts. Adds the single numbered changelog fragment 12371-kimi-k3-effort-tiers.md.
7cc44c2 to
eaaac1e
Compare
|
Rebased the branch onto the current Re-ran the focused specs on the rebased head to be safe: |
…ouzapw#12299) (diegosouzapw#12371) Validado em lote numa worktree combinada com os 6 PRs destas duas levas sobre o tip de `release/v3.8.51`: os seis boardaram **sem um único conflito**, `typecheck:core` limpo e **54/54** nos 7 arquivos de teste que trazem. O drift de `i18n:check` (`docs/security/GUARDRAILS.md`, `STEALTH_GUIDE.md` — source-changed) foi medido também no tip puro e é idêntico: base-red pré-existente, não desta leva.
Summary
GET /v1/modelswasn't advertising Kimi K3's reasoning tiers (low/high/max) on the kmca base entries (k3,k3-256k), even though the synced metadata carriessupportedThinkingEfforts: ["low", "high", "max"]. Catalog-only clients (OpenCode, plain SDK pickers) had no tiers to copy and invented incorrect values.Why:
effectiveEffortTiers()insyncedCapabilities.tsbails out as soon asisSkippedEffortProvider(ownedBy)is true — which covers every codex/glm/kimi-owned model — so the tiers never reached the base entries. That gate exists to stop synthetic<id>-<tier>variant generation inshouldExposeSyncedEffortVariants(still intact), not to hide tiers from the base model.The fix is model-scoped: the codex/glm/glm-cn/glmt + non-K3 kimi exclusion is restored exactly as before, and only Kimi K3 base entries on kimi-owned providers (
k3,k3-256k, incl.kmca/k3) are exempted so their tiers publish. Codex/GLM behavior is unchanged by this PR.Related Issues
Validation
npm run lintrelease/v3.8.51)Tests Added Or Updated
tests/unit/kimi-k3-effort-tiers-12299.test.ts(new) — 6 tests: K3/K3-256k base entries publisheffort_tiers, merge path, synthetic-variant prevention, registry shape.tests/unit/synced-capabilities-learned-effort-override.test.ts(12 tests restored) — back to asserting codex/glm/glm-cn/glmt and non-K3 kimi models never receiveeffort_tiers.Coverage Notes
src/app/api/v1/models/syncedCapabilities.ts; both new files exercise the exemption and the exclusion paths.Reviewer Notes
k3/k3-256k(incl.kmca/k3) pattern the executor/translator layers already use; everything else keeps the feat(providers): capture upstream reasoning.supported_efforts at sync so synced openai-compatible models become selectable with effort levels #7694 exclusion.12371-kimi-k3-effort-tiers.mdreferencing fix(api): GET /v1/models hides Kimi K3 effort_tiers (low/high/max) #12299.