feat(cursor): expose native composite model picker - #489
Conversation
…or-model-controls
|
CI follow-up is ready in Fixed the previous run failures:
Local verification on the merged tree:
The new upstream run has no jobs and is marked |
|
Thanks for this — I spent a while on it, and I want to say up front that the protocol work here is genuinely good. I verified your central claims against a live
CI is green on all seven jobs, so nothing below is a "CI is red" complaint. But I don't think it's quite ready to merge yet. Here's what I found. 1. The
|
Summary
High Fast,1M Thinking, andExtra High Thinking Fastas searchable single-row choicesWhy
Cursor exposes model selection through two dynamic surfaces:
cursor-agent modelsprovides the account/version-specific flattened catalog shown by the CLI.reasoning,effort,thinking,context, andfastoptions.Without
_meta.parameterizedModelPicker: true, Cursor falls back to compatibility tuples, so Codeg cannot expose the complete native controls. Conversely, sending the CLI's flattened alias as the ACP model ID is rejected by Cursor.This change intersects the live CLI catalog with the live ACP catalog, accepts only globally unique mappings, and keeps the flattened alias as a local UI key. The ACP request contains only Cursor-advertised raw values.
Auto (default)keeps Cursor's realdefaultvalue.Safety and compatibility
__codeg_*values fail closed before any ACP request.waitid(WNOWAIT), retires the lease before final reap, and does not signal stale numeric PID/PGID values after identity loss.mainare preserved.Validation
pnpm eslint .: passed.pnpm build: passed; 32 static routes generated.-D warnings: passed.codeg-mcpcheck and clippy with-D warnings: passed.wwwuser.Desktop
cargo checkis blocked on this host before project-code compilation because the GLib/GIO development packages are not installed. No paid model prompt was issued.