Skip to content

fix(cursor): add kimi-k3 with low/high/max effort tiers - #646

Draft
koopmannleon19977-cmyk wants to merge 1 commit into
lidge-jun:devfrom
koopmannleon19977-cmyk:fix/cursor-kimi-k3
Draft

fix(cursor): add kimi-k3 with low/high/max effort tiers#646
koopmannleon19977-cmyk wants to merge 1 commit into
lidge-jun:devfrom
koopmannleon19977-cmyk:fix/cursor-kimi-k3

Conversation

@koopmannleon19977-cmyk

@koopmannleon19977-cmyk koopmannleon19977-cmyk commented Jul 28, 2026

Copy link
Copy Markdown

Summary

Cursor serves Kimi K3 only as effort-suffixed wire ids (kimi-k3-low, kimi-k3-high, kimi-k3-max) — verified against GetUsableModels on 2026-07-28 with an entitled account. The bare id kimi-k3 fails with Connect not_found, and since the model was missing from CURSOR_STATIC_MODELS it never entered the routed catalog either.

  • src/adapters/cursor/effort-map.ts: add "kimi-k3": ["low", "high", "max"] to CURSOR_MODEL_EFFORT_TIERS, so requests resolve to a suffixed variant (bare/no-effort picks the top tier max, same clamp behavior as other tiered models). Tiers mirror the native Kimi provider's K3 ladder (KIMI_CODING_K3_REASONING_EFFORTS).
  • src/adapters/cursor/discovery.ts: add kimi-k3 to CURSOR_STATIC_MODELS (CONTEXT_262K, supportsReasoningEffort: true) and adjust the stale "kimi sent bare" comment.
  • Cursor's own docs page now lists the model: https://cursor.com/docs/models/kimi-k3

Test plan

  • bun test tests/cursor-effort-suffix.test.ts tests/cursor-discovery.test.ts — 18 pass (new cases: cursor/kimi-k3 + low/medium/high/max/bare → suffixed wire ids, ladder ["low","high","max"], static seed contains kimi-k3)
  • bun test tests/codex-catalog.test.ts tests/provider-registry-parity.test.ts tests/reasoning-effort.test.ts — 182 pass
  • Live smoke against a 2.7.41 install patched with this change: POST /v1/responses cursor/kimi-k3completed (previously Cursor Connect error not_found); same with reasoning.effort=low

Summary by CodeRabbit

  • New Features
    • Added support for the Cursor Kimi K3 model with a 262K context window.
    • Added reasoning effort levels: low, medium, high, and max.
    • Model selection now defaults to the highest available effort when no level is specified.

Cursor serves Kimi K3 only as effort-suffixed wire ids
(kimi-k3-low/-high/-max, verified via GetUsableModels 2026-07-28);
the bare id returns Connect not_found. Add the base model to
CURSOR_STATIC_MODELS (tier picker) and CURSOR_MODEL_EFFORT_TIERS so
requests resolve to a suffixed variant, mirroring the native Kimi
provider's K3 ladder.
@github-actions github-actions Bot added the bug Something isn't working label Jul 28, 2026
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6fca7930-22d0-47e0-8959-bbb154579616

📥 Commits

Reviewing files that changed from the base of the PR and between ca7b104 and 31c7326.

📒 Files selected for processing (4)
  • src/adapters/cursor/discovery.ts
  • src/adapters/cursor/effort-map.ts
  • tests/cursor-discovery.test.ts
  • tests/cursor-effort-suffix.test.ts

📝 Walkthrough

Walkthrough

The Cursor adapter now catalogs kimi-k3 with a 262K context window and reasoning support, maps its low, high, and max effort variants, and tests discovery plus effort resolution behavior.

Changes

Cursor kimi-k3 support

Layer / File(s) Summary
Catalog and effort-tier mapping
src/adapters/cursor/discovery.ts, src/adapters/cursor/effort-map.ts
Adds kimi-k3 to the static catalog with reasoning metadata and maps its available effort suffixes to low, high, and max.
kimi-k3 discovery and resolution tests
tests/cursor-discovery.test.ts, tests/cursor-effort-suffix.test.ts
Verifies catalog inclusion, tier resolution, default top-tier selection, and canonical effort-ladder ordering.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: enhancement

Suggested reviewers: lidge-jun, wibias

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding Cursor support for kimi-k3 with effort tiers.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 31c732653f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

{ id: "kimi-k2.7-code", contextWindow: CONTEXT_262K },
// kimi-k3: cursor.com/docs/models/kimi-k3; account-verified via GetUsableModels (2026-07-28) —
// ships only as effort-suffixed kimi-k3-{low,high,max}, so the tier picker is exposed.
{ id: "kimi-k3", contextWindow: CONTEXT_262K, supportsReasoningEffort: true },

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Document Kimi K3 in the Cursor catalog

Adding cursor/kimi-k3 with selectable low / high / max tiers changes the user-visible picker and fallback catalog, but the docs-site model coverage table still describes the Cursor fallback without this model or its effort behavior. Update the English Cursor coverage documentation and keep translated locales consistent so users can discover and correctly configure the new route.

AGENTS.md reference: AGENTS.md:L96-L97

Useful? React with 👍 / 👎.

{ id: "kimi-k2.7-code", contextWindow: CONTEXT_262K },
// kimi-k3: cursor.com/docs/models/kimi-k3; account-verified via GetUsableModels (2026-07-28) —
// ships only as effort-suffixed kimi-k3-{low,high,max}, so the tier picker is exposed.
{ id: "kimi-k3", contextWindow: CONTEXT_262K, supportsReasoningEffort: true },

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve max as Kimi K3's catalog default

When this model is used through the Codex catalog, cursorModelReasoningEfforts supplies low / high / max but the Cursor registry supplies no modelDefaultReasoningEfforts override. Consequently, applyReasoningLevels selects high as default_reasoning_level, so an ordinary picker request explicitly sends high and never reaches the request builder's intended no-effort fallback to kimi-k3-max. Add a max default for this Cursor model, as is already done for Kimi K3 on the other provider routes, and cover the integrated catalog entry.

Useful? React with 👍 / 👎.

@Wibias Wibias left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Maintainer review (bug + security)

Verdict: REQUEST CHANGES

HEAD: 31c73265. Target dev is correct. CodeRabbit: no actionable comments. Codex: 2 open P2s (verified below). Security review (Security Review): no medium+ — static catalog/effort-tier mapping only; no auth, credential, SSRF, or trust-boundary changes.

Focused effort/discovery tests: discovery suite passes; effort-suffix file needs bun install in the review worktree (@bufbuild/protobuf) — rely on CI for the full gate. Cross-platform CI had not fully reported at review time beyond label/enforce/CodeRabbit.

Open Codex (verified against HEAD)

Item Verdict Action
P2: catalog default becomes high, not max Valid / required Cursor registry has modelReasoningEfforts from the ladder ["low","high","max"] but no modelDefaultReasoningEfforts. applyReasoningLevels (effort.ts:178-180) then picks high (no medium in the ladder). Ordinary Codex picker requests therefore send high → wire kimi-k3-high, and never hit the request-builder’s no-effort → top-tier (kimi-k3-max) path that the new test documents. Native Kimi / OpenCode-Go already set "kimi-k3": "max". Add modelDefaultReasoningEfforts: { "kimi-k3": "max" } on the Cursor registry entry (providers/registry.ts) and cover it in catalog/reasoning tests.
P2: docs-site Cursor coverage Valid / required User-facing catalog change. Update English docs-site/.../guides/codex-app-models.md Cursor row (and keep translated locales consistent) so the static fallback mentions cursor/kimi-k3 and its low / high / max effort behavior.

Diff sanity (no extra blockers)

  • Tiers ["low","high","max"] match KIMI_CODING_K3_REASONING_EFFORTS; supportsReasoningEffort: true matches the effort-map entry.
  • mediumkimi-k3-high clamp matches existing non-medium ladder behavior (cursorEffortSuffix).
  • Static seed + effort-suffix tests are the right shape once the default override lands.

Required before merge

  1. Set Cursor modelDefaultReasoningEfforts["kimi-k3"] = "max" (+ regression coverage).
  2. Update docs-site Cursor coverage (EN + locales).

@Wibias
Wibias marked this pull request as draft July 29, 2026 08:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants