feat(cursor): ultra mode toggle (kimi-k3-1m) with Max Mode wire flag - #2654
feat(cursor): ultra mode toggle (kimi-k3-1m) with Max Mode wire flag#2654lidge-jun wants to merge 1 commit into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
|
✅ Deterministic PR hygiene checks passed. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 940d8290e7
ℹ️ 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".
| // kimi-k3-1m: synthetic ultra/Max-Mode picker variant (CURSOR_ULTRA_1M_MODEL_IDS) — wire sends | ||
| // kimi-k3-<effort> with maxMode=true; 1M context user-verified live on the Ultra plan | ||
| // (devlog 260826_cursor_responses_gap/025). inferCursorContextWindow maps "1m" ids to 1M. | ||
| { id: "kimi-k3-1m", contextWindow: CONTEXT_1M, supportsReasoningEffort: true }, |
There was a problem hiding this comment.
Document the new Cursor Max Mode model
Adding cursor/kimi-k3-1m changes the user-visible model catalog and introduces Max Mode behavior, but docs-site/src/content/docs/guides/providers.md:585-592 still describes only the 262K cursor/kimi-k3 row and its effort ladder; the translated provider guides likewise omit the new selection. Update the English guide and translations so users can distinguish the synthetic 1M row, its plan-gated behavior, and its wire mapping.
AGENTS.md reference: src/AGENTS.md:L28-L28
Useful? React with 👍 / 👎.
940d829 to
9de0d83
Compare
778766c to
13c838c
Compare
리뷰 · 우선순위 57 / 80설명 이 풀 리퀘스트는 Cursor 큰 맥락 모델을 고를 때, 코드엑스처럼 ultra 스위치를 쓰기 위한 가짜 행 cursor/kimi-k3-1m을 넣습니다. 지금 dev의 src/adapters/cursor/discovery.ts 308-310줄에는 kimi-k3만 있고 컨텍스트는 262,144입니다. 212-218줄의 filterCursorConfiguredModelsByLiveDiscovery는 라우터 모델이거나 계정 라이브 목록에 있으면 통과시킵니다. src/adapters/cursor/protobuf-request.ts 971-977줄의 RequestedModel.maxMode는 지금 항상 false입니다. 1M 창을 켜려면 Cursor Max Mode를 와이어에 올려야 하는데, 그 길이 없습니다. 고침은 선택기 행과 와이어를 나눕니다. CURSOR_ULTRA_1M_MODEL_IDS에 kimi-k3-1m만 넣고, cursorUltraBaseModelId가 cursor/ 접두사를 뗀 뒤 집합에 있을 때만 -1m을 잘라 kimi-k3를 돌려줍니다. 요청 빌더는 그 베이스에 노력 접미사를 붙이고 maxMode를 true로 둡니다. 프로토콜은 RequestedModel.maxMode와 ModelDetails.maxMode를 같이 올립니다. 하나만 올리면 invalid_argument가 난다는 설명이 있습니다. 노력 단계는 kimi-k3와 같은 low, high, max입니다. 계정 필터는 베이스 모델이 라이브이면 가짜 행도 통과시킵니다. 집합이 좁은 것은 맞습니다. claude-4-sonnet-1m 같은 진짜 1m 와이어 id는 집합에 없어서 가짜로 취급되지 않습니다. 테스트도 그 점을 고정합니다. 다만 inferCursorContextWindow는 이미 27-29줄에서 id에 1m이 들어 있으면 1,000,000을 줍니다. 정적 행이 같은 값을 다시 적어도 해롭지는 않습니다. 라이브 발견의 maxModeModels는 자동 확장의 기초라고만 적혀 있고, 이 PR에서는 저장만 합니다. 실제로 집합을 넓히지는 않습니다. 이 PR은 지금 dev 위가 아닙니다. 베이스는 codex/cursor-gap-4, 곧 #2653입니다. #2650부터 #2653이 먼저 들어가야 합니다. Max Mode 자체는 플랜으로 막혀 있습니다. Ultra가 아닌 계정은 Cursor가 거절하고, 이 코드는 그 거절을 그대로 보여 줍니다. 선택기에 1m 행이 보이면 플랜이 없는 사람은 고를 수 있고 실패를 보게 됩니다. src/adapters/cursor/discovery.ts:308 - 지금 정적 씨드에 kimi-k3-1m이 없어 1M 선택기가 없습니다. 메인테이너의 판단이 필요한 지점
너의 추천 #2650부터 #2653이 먼저 들어간 뒤에 이 PR을 합치세요. 지금 dev에 직접 합치지 마세요. 합치기 전에는 플랜이 없는 계정에서 1m 행이 어떻게 보이는지 한 번 확인하세요. 미리보기 배포는 계획에 없습니다. 이 댓글은 grok-bot이 작성했습니다 |
9de0d83 to
3b489ca
Compare
13c838c to
7f6c4de
Compare
…+ maxMode discovery
3b489ca to
e0b6060
Compare
7f6c4de to
6efe59a
Compare
Summary
cursor/kimi-k3-1mpicker row (context_window 1,000,000 — user-verified live on the Cursor Ultra plan) whose requests resolve to the original wire id (kimi-k3-<effort>) with Cursor Max Mode raised on BOTHRequestedModel.maxModeandModelDetails.maxMode(missing either can invalid_argument upstream, per two independent protocol implementations). The-1mmarker never reaches the wire; collision with real-1mwire ids is impossible because only ids inCURSOR_ULTRA_1M_MODEL_IDSare treated as synthetic.fetchCursorUsableModelsnow preservesModelDetails.maxMode=trueids (maxModeModels) as the auto-detection foundation for extending the ultra set from live discovery.kimi-k3([low, high, max]) so the tier picker works identically on the 1m variant.Stacked on #2653. Design: 070_ultra_mode.md + 025_ultra_k3_research.md (claim ledger).
Verification
bun test tests/cursor-ultra-mode.test.ts— 8 pass (catalog row, marker resolution, wire flags both fields, non-ultra unchanged, filter-through-base, set/static parity).bun x tsc --noEmit— clean.Known boundary: Max Mode entitlement is plan-gated upstream (devlog 260822 210_maxmode); a non-entitled account gets Cursor's own runtime rejection, which we surface honestly.
Checklist