2.7.1
Cursor integration: real-catalog model picker
The Cursor model picker and per-family mode dropdown now match the live cursor-agent --list-models output. Previously the single-step family resolver collapsed only one trailing token, so multi-suffix ids (e.g. claude-opus-4-7-thinking-low-fast, gpt-5.5-extra-high-fast, claude-4.6-opus-max-thinking) ended up as their own pseudo-families and the mode dropdown was missing most variants. After this release the chat sidebar shows 25 clean families with rich, runnable mode lists.
Fixes
- Iterative family resolver with strong tokens (
none/low/medium/high/xhigh/thinking/fast) and the multi-tokenextra-high.maxis treated as a weak token that only strips when its candidate base has other strong-mode siblings, soclaude-opus-4-7-maxcollapses into the Claude Opus family whilegpt-5.1-codex-maxkeeps its own family. - Standard-mode safety: a family's mode dropdown only includes
Standardwhen the bare family id is itself a real model. Picking a family without a bare id now defaults to the first runnable variant, so the runtime never sends a--modelvalue the CLI rejects (the previous default would have spawned--model claude-opus-4-7which Cursor refuses). - Compound mode UX: labels render as space-separated title case (
Thinking Low Fast,Extra High Fast); the dropdown sorts non-thinking variants first, then by effort, withfastlast. - Parser hardened: drops the trailing
Tip:footer line that previously leaked into the cached catalog as a phantom model id, prefers the explicit-separator from the native<id> - <label>format, and tightens the id pattern so trailing punctuation cannot survive. - Stale
effortLevelrepaired: when the persisted mode is no longer valid for the selected family,resolveCursorModelSelectionForClifalls back to the first runnable variant instead of producing an invalid CLI invocation. - Label polish: dotted version numbers (
Composer 2.5,Kimi K2.5,Grok Build 0.1) are preserved, and the GPT/Gemini/Grok formatters keep size and qualifier tails so the picker no longer collides on lookalike names (GPT-5.4 MinivsGPT-5.4 NanovsGPT-5.4,GPT-5.1 Codex MaxvsGPT-5.1 Codex Mini). Kimi K2.5 moves out of the OpenAI vendor bucket.
Tests
A real-catalog fixture (tests/fixtures/providers/cursor/realCatalog.ts) and 14 new tests pin the 25 families and key compound-mode shapes, so any future change in Cursor's id taxonomy fails this suite loudly instead of silently degrading the picker.
Also in this release
Full Changelog: 2.7.0...2.7.1