Skip to content

Fix persisted Cursor model IDs for parameterized ACP - #2432

Merged
ymichael merged 2 commits into
mainfrom
bb/post-merge-fix-preserve-legacy-cursor-model-ids-thr_xq4xkxvwsk
Aug 25, 2026
Merged

Fix persisted Cursor model IDs for parameterized ACP#2432
ymichael merged 2 commits into
mainfrom
bb/post-merge-fix-preserve-legacy-cursor-model-ids-thr_xq4xkxvwsk

Conversation

@ymichael

Copy link
Copy Markdown
Collaborator

Human comments

What was wrong

Cursor's parameterized ACP picker accepts bare model IDs, but the shared session builder forwarded previously persisted Cursor CLI-family IDs unchanged. Existing threads and project defaults could therefore send values such as cursor-grok-4.6-medium or auto, which Cursor rejects before the first prompt.

What changed

Normalize persisted model IDs only for Cursor's parameterized picker at the shared ACP session-construction boundary. The implementation reuses the existing CLI variant parser, maps auto to default, removes historical variant syntax and the cursor- prefix, and leaves current bare IDs unchanged. Start, resume, fork, selected-only models, project-default starts, reasoning, and service tier share the covered path. HOST_DAEMON_PROTOCOL_VERSION remains 170 because no server-to-daemon wire contract changed; no CLI, SDK, documentation, migration, or generated-file update is required.

How you verified

The new start, resume, and fork cases failed before the fix with model not found for cursor-grok-4.6-medium, cursor-grok-4.5-medium, and auto (3 failed, 284 passed), then passed after the fix.

  • pnpm exec turbo run test --filter=@bb/provider-bridge-acp --force — 17 files, 288 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.
  • Focused oxfmt --check, git diff --check, and the original bridge reproduction passed.

Fixes #1688

AGENT GENERATED

@ymichael
ymichael merged commit 1b1791d into main Aug 25, 2026
15 checks passed
@ymichael
ymichael deleted the bb/post-merge-fix-preserve-legacy-cursor-model-ids-thr_xq4xkxvwsk branch August 25, 2026 22:12
ymichael added a commit that referenced this pull request Aug 27, 2026
## 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](#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_VERSION` remains 170 because the server/daemon
wire contract did not change. There is no CLI, guide, documentation, or
public plugin API change. Current main already carries the unpublished
plugin SDK 0.4.24 version, whose pending publication will include this
changed ACP runtime, so the rebased branch needs no additional version
bump.

## 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 accepted `claude-sonnet-4-6`, and the
all-family live probe reported `legacy-families=34`,
`accepted-parameterized=35`, and `missing=[]`.

- `pnpm exec turbo run test --filter=@bb/provider-bridge-acp --force` —
17 files, 295 tests passed after rebase.
- `pnpm exec turbo run typecheck --filter=@bb/provider-bridge-acp
--filter=@get-bb/plugin-sdk --filter=bb-plugin-provider-acp --force` — 6
tasks passed after rebase.
- `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` —
passed; `@get-bb/plugin-sdk@0.4.24` is not on npm.
- Targeted formatting and `git diff --check origin/main..HEAD` passed.

Fixes #1688

> AGENT GENERATED
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cursor Grok 4.6 is hidden from the primary model picker

1 participant