Complete persisted Cursor model compatibility - #2456
Open
ymichael wants to merge 2 commits into
Open
Conversation
Map six historically renamed Cursor families after variant collapse so every committed picker family resolves to a live parameterized ACP model.
Plugin SDK 0.4.21 was published between local validation and PR CI, so bump the changed ACP runtime to 0.4.22.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human comments
What was wrong
Cursor's parameterized ACP picker accepts current bare model IDs, but six families persisted by the historical Cursor picker use spellings that generic effort/thinking collapse cannot derive. The compatibility translator added in PR #2432 therefore produced IDs absent from Cursor's live catalog, and affected sessions failed during construction before the first prompt.
What changed
Apply six explicit Cursor-only legacy-family renames after the existing variant collapse at the shared ACP session-construction boundary. No rows are rewritten, and current bare IDs,
auto/default, reasoning, service tier, non-Cursor ACP, and non-parameterized behavior remain unchanged. A fixture-backed table test now checks all 34 historical persisted families against Cursor's accepted parameterized catalog, with a representative renamed Claude resume case through the bridge.HOST_DAEMON_PROTOCOL_VERSIONremains 170 because the server/daemon wire contract did not change. There is no CLI, guide, documentation, or public plugin API change. The plugin SDK is bumped to 0.4.22 because 0.4.21 was published after the initial local publication check and cannot carry this changed ACP runtime.How you verified
Before the production change, the fixture-backed test failed with 1 failed / 19 passed and identified exactly six incompatible translations; a live representative flow translated to rejected
claude-4.6-sonnet. Afterward, that flow translated to acceptedclaude-sonnet-4-6, and the all-family live probe reportedlegacy-families=34,accepted-parameterized=35, andmissing=[].pnpm exec turbo run test --filter=@bb/provider-bridge-acp --force— 17 files, 295 tests passed.pnpm exec turbo run typecheck --filter=@bb/provider-bridge-acp --filter=@get-bb/plugin-sdk --filter=bb-plugin-provider-acp --force— 6 tasks passed.pnpm exec turbo run build --filter=@get-bb/plugin-sdk --force— 2 tasks passed; 17 runtime entries built.node packages/plugin-sdk/scripts/check-npm-version-guard.mjs— reproduced CI's failure at published 0.4.21, then passed after the 0.4.22 bump.git diff --check origin/main..HEADpassed.Fixes #1688