Skip to content

feat(kimi): consolidate Coding catalog and Responses preset - #5571

Closed
luvs01 wants to merge 9 commits into
devfrom
stack/kimi-coding-catalog
Closed

luvs01 wants to merge 9 commits into
devfrom
stack/kimi-coding-catalog

Conversation

@luvs01

@luvs01 luvs01 commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Consolidate #5447 and #5429 into one Kimi Coding catalog change. Register the native k3-256k model and add an optional kimi-responses preset that shares the existing Kimi OAuth account while keeping Chat as the default. Preserve all five original contributions, including review follow-ups and author attribution.

  • Use one four-model roster and capability seed across kimi, kimi-code, and kimi-responses; regenerate the metadata alias and verify cross-preset parity and tool-result adjacency.
  • Add explicit K3 price namespaces using the published API reference rates and default 5-minute cache-write rate. These remain derived estimates, not Code Plan bills or quota; the 1M model and k3-256k consume different quota.
  • Compatibility change: kimi-for-coding now serves K2.8 Preview, so its obsolete K2.7 price is removed from the existing presets and is not copied to Responses. Its cost remains unknown unless configured through modelCosts. Policies that exclude unknown prices or unknown cost under a cap may exclude this alias; allow policies and explicit user prices retain their existing behavior.
  • Close the cost-cap fixture's SQLite history handle and clear its cached health evidence before deleting its temporary home. This resolves the reproduced Windows cleanup failure without raising timeouts or skipping cases.

Pricing/model identity was checked on 2026-09-23 against Kimi API pricing and Kimi Code model configuration. No K2.8 price or actual Code Plan billing equivalence is claimed.

Verification

  • Exact local head: c86bc00b531dba6f16f15b52954d16be20b2adc1; base dev b1b60e880c61fbea12eed326ac43529cc393fb15. The last commit adds only the unchanged screenshot below; runtime, GUI source, docs and tests remain identical to 5ebd93d.
  • At 7e547bf02d8215f1a195a033158cdf0558a7aa8c, the unchanged wrapper over seven explicit provider/catalog/usage/cost-cap/metadata-sync/adjacency files completed 562 passed, 0 failed, 5,616 assertions, 36.10 seconds. Earlier failed runs were retained and are not included in this total. The dev merge to 40e468c changed only nine upstream CI/layout/documentation files; the Kimi contribution files, runtime source and test harness at that point remained byte-identical to the tested head. The subsequent correction below changes documentation totals and brand aliases, not the provider behavior.
  • On the preceding 40e468c head, five explicit CI/workflow/layout files completed 173 passed, 8 skipped, 0 failed, 2,070 assertions, 4.14 seconds. The existing platform/dependency-dependent shell cases were skipped, not counted as passing.
  • Typecheck, structure SSOT, privacy scan, file-size ratchet and English/Chinese docs build (497 pages, existing dependencies) passed before the CI-only dev refresh. Whitespace validation passed on the final head.
  • Hosted CI on 40e468c found two missed integration obligations: translated preset totals and the Responses preset brand alias. 5ebd93d updates the 17 anchored guide/quickstart/structure statements to the registry-derived 97 total / 80 key / 13 OAuth split and wires the existing Kimi brand asset and label. The two failing test files now pass locally: 24 passed, 0 failed, 61 assertions. The production browser build and 497-page docs build also passed after this correction, using existing dependencies.
  • Cross-platform CI at 5ebd93d completed successfully, including all four Linux shards, gates, docs and aggregate CI. Native/macOS jobs and Windows diagnostic shards were skipped by that run's path policy; this is not a full Windows/macOS test claim.
  • The existing screenshot of the real ProviderRail/ProviderIcon fixture was independently checked from its saved PNG pixels and matching DOM. All three Kimi marks and names/aliases are visible; the third mark has a complete 20x20 shape matching the first two. Source hashes match the final GUI source. The original composite viewport assertion failed, its exact failed subcondition remains unknown, and it was not rerun. This is bounded synthetic UI evidence, not live-provider or full-app interaction validation.
  • Local full-suite completion, screenshot-only head hosted CI, live provider/billing verification and security review remain pending. No installation, test timeout/baseline increase or runtime setting change. This PR stays draft.

UI evidence

Actual provider rail rows for kimi, kimi-code, and selected kimi-responses, using the shared Kimi brand mark. PNG SHA256: 5977ce36680a496517cb7b50b9c734d3836d9cdb69694c79b1a708987e77e19b.

Kimi aliases rendered by the real ProviderRail fixture

The two original contributor-owned PRs remain open for maintainer coordination.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

Co-authored-by: panyuanyuan panyuanyuan@hetao101.com

yuanyuan2026 and others added 7 commits September 23, 2026 01:06
Live verification 260921: k3-256k is the same K3 served under the
explicit ceiling id - the same 988-token scaffold and identity answer as
bare k3 on the same input. The subscription endpoint lists it alongside
kimi-for-coding[-highspeed] and k3, but the opencodex picker and the
expected-prices overlay only knew k3 and k3[1m], so usage logged under
k3-256k showed as unestimable.

- KIMI_CODING_K3_MODELS gains k3-256k, so the picker, context windows
  (262_144, the advertised ceiling), reasoning ladder and locked-parameter
  lists all derive it automatically.
- expected-prices gains kimi/kimi-code entries at the same KIMI_K3 rate
  (input 3 / output 15 / cacheRead 0.3), sourced as verified-derived with
  the live probe note.
- Parity and overlay-membership tests updated for the new id.

Verified: provider-registry-parity + codex-catalog + usage-cost +
model-rename-migration 539 pass, tsc clean.

(cherry picked from commit 5910394)
Per maintainer review on #5447: the overlay test only bumped the row
count 126->128, so dropping the new k3-256k rows and adding any other
two rows would still pass. Name kimi/k3-256k and kimi-code/k3-256k in
the mandatory list so the test fails if either row disappears.

(cherry picked from commit c0484f4)
Adds a dedicated OAuth preset that routes the Kimi subscription account
over the Responses wire, following the same shape as zai-responses and
volcengine-plan-responses:

- Shares the kimi OAuth account via oauthId, so a user who already logged
  in with ocx login kimi can add this preset without a second login.
- Carries identical model metadata to the Chat preset (kimi-for-coding
  default, 1M context, adjustable low/high/max ladder, image input).
- requiresAdjacentResponsesToolResults is live on this wire (#4726); the
  Chat preset keeps the flag inert.
- Thinking content stays encrypted server-side on Responses, while tool
  calls and results stay visible; the Chat preset remains the default for
  plaintext reasoning.

Parity tests assert the preset's wire, oauthId reuse, model roster,
context window, reasoning ladder, and featured=false. Bracket-suffix
stripping and jawcode alias lists pick up the new id automatically.
Docs updated in EN and zh-cn.

Verified: provider-registry-parity + codex-catalog + model-rename-migration
441 pass, tsc clean, docs build exit 0 (497 pages).

(cherry picked from commit 6925faa)
Address the CodeRabbit finding on #5429: kimi-responses reuses the kimi
OAuth account (oauthId: kimi), so it belongs with ocx login kimi in the
subscription column, not under API key. Docs build verified (497 pages,
exit 0).

(cherry picked from commit 19ed41a)
…across locales

Address grok-bot review on #5429:

- The promptCacheKey comment in kimi-responses now states the actual
  behavior: only the Chat adapter reads the flag today; the field is kept
  because the Responses endpoint accepts it (live probe: prompt_cache_key
  round-trips 200), and enabling the adapter's send is a follow-up.
- The EN provider list table gains a kimi-responses row (it previously
  appeared only in the auth comparison table); the zh-cn table gains the
  matching row in the same position.
- The prompt_cache_key prose in both locales now says the key goes to the
  Chat Completions request only, with a note that the Responses wire
  accepts the same field but opencodex does not send it there today.

Verified: docs build exit 0 (497 pages), provider-registry-parity 59 pass,
tsc clean.

(cherry picked from commit 36eef9d)
Keep the shared four-model roster consistent across Chat, key and Responses
presets, and regenerate the provider metadata alias from the registry.

Connect K3's explicit price namespaces to the current API reference rates,
including the default 5-minute cache-write rate. These are comparison estimates,
not Code Plan bills or quota. Remove the obsolete K2.7 price for kimi-for-coding,
which now serves K2.8 Preview; unknown prices still obey routing policy and an
operator modelCosts override remains authoritative.

Preserve all five source contributions and their follow-ups as separate -x
carries. Add cross-preset price, capability, unknown-cap and override regressions.
Close the cost-cap fixture's actual SQLite history handle before removing its
home, clear its cached health evidence, and settle pending ACL work without
changing timeouts or swallowing cleanup failure. Update the provider and usage
contracts and both affected documentation locales.

Co-authored-by: panyuanyuan <panyuanyuan@hetao101.com>
@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the enhancement New feature or request label Sep 22, 2026
@lidge-jun

Copy link
Copy Markdown
Owner

리뷰 · 우선순위 58 / 80

이 PR은 Kimi Coding 쪽 두 갈래(#5447의 k3-256k 등록, #5429의 kimi-responses 프리셋)를 dev 위에 하나로 합칩니다. 피커와 시드에 네이티브 k3-256k(262K 천장)를 넣고, 선택용 kimi-responses는 같은 Kimi OAuth(oauthId: kimi)로 Responses 선을 탑니다. Chat(kimi)·API 키(kimi-code)·Responses가 같은 네 모델 명단과 능력 시드를 쓰고, 가격 네임스페이스는 프리셋마다 따로 둡니다. kimi-for-coding이 K2.8 Preview로 바뀐 뒤 옛 K2.7 추정가는 빼서, 가격을 모르는 한도/정책은 이 별칭을 막을 수 있습니다. K3 가격은 API 참고용(기본 5분 캐시 쓰기)이고 Code Plan 청구·쿼터와 같다고 말하지 않습니다. Windows에서 cost-cap 픽스처가 임시 홈을 지울 때 SQLite·헬스 캐시를 먼저 닫도록 고쳤고, 문서·구조 노트·패리티/가격 테스트도 맞춰 두었습니다. 초안이며 전체 스위트·호스트 CI는 아직입니다.

src/providers/registry/entries-core.ts (kimi-responses.promptCacheKey) - 레지스트리에 promptCacheKey: true를 켜 두었지만, EN/zh 문서는 “Responses에는 지금 안 보낸다”고 적습니다. 주석대로 Chat과 시드를 맞추려는 의도라면, 나중에 보내는 사람이 플래그만 보고 “이미 동작한다”고 착각하기 쉽습니다.

docs-site/.../providers.md vs zh-cn/.../providers.md - 영어는 구독/키 비교 표에 kimi-responses를 넣었고, 중국어는 카탈로그 표·가격 절만 고쳤습니다. 뜻은 통하지만, 표 위치가 달라서 한쪽만 고친 것처럼 보일 수 있습니다.

#5447 / #5429 - 둘 다 아직 열려 있고, 이 PR이 그 내용을 흡수한 통합본입니다. 그대로 두면 같은 카탈로그 변경이 세 갈래로 남습니다.

메인테이너의 판단이 필요한 지점

kimi-for-coding 추정가를 비워 두는 호환 변경을 지금 받아들일지(unknown-cost 정책이 별칭을 막을 수 있음). promptCacheKey를 Responses에 실제로 보내기 전까지 플래그를 둘지 말지. 머지 시점에 #5447·#5429를 닫을지(작성자도 조율이 필요하다고 적음). 초안·전체 스위트 미완을 머지 전 조건으로 둘지.

너의 추천

방향은 유지하세요. 머지 전에 #5447·#5429를 무효/중복으로 닫을 계획만 잡고, promptCacheKey는 “지금은 안 보냄”이 코드/주석/테스트에 한눈에 드러나게 맞추세요. kimi-for-coding 미가격은 문서·테스트와 같으니, 릴리스 노트에 unknown-cost 영향만 짧게 적으면 됩니다. 초안이 풀리고 합의된 게이트가 초록이면 통합본으로 가져가도 됩니다. 프리뷰 배포 이야기는 이 범위 밖입니다.

이 댓글은 grok-bot이 작성했습니다

@github-actions

github-actions Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

✅ READY

  • all PR quality gates passed.

Hygiene

Deterministic PR hygiene checks passed.

@lidge-jun

Copy link
Copy Markdown
Owner

Superseded by #5609, which is open and not yet merged. k3-256k, the kimi-responses preset, the price alignment, the brand alias and the docs (7db37ed, 63d3f19, 351f507, 63755ef, 82ff04d, 7e547bf, 5ebd93d, c86bc00) are carried there as one commit crediting panyuanyuan and you as co-authors, with preset totals recounted from the registry. The K2.8 alias and migration work is already on dev via #5403 (600e323). The source PRs #5447 and #5429 are not closed here; that is left to the maintainers. Thank you!

@lidge-jun lidge-jun closed this Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants