fix(cursor): fallback when requested model is unavailable

- resolve request model against current available catalog

- choose safe default when configured default id is not present

- add tests and docs for daemon request-model fallback behavior
This commit is contained in:
Tam Nhu Tran committed 2026-02-17 20:53:03 +07:00
1 parent 9031e5a085
commit fae8716900
4 files changed
+82 -11

No files matched your search

+21
View File
@@ -15,6 +15,7 @@ import {
fetchModelsFromCursorApi,
getModelsForDaemon,
clearCursorModelsCache,
resolveCursorRequestModel,
} from '../../../src/cursor/cursor-models';
describe('DEFAULT_CURSOR_MODELS', () => {
@@ -50,6 +51,26 @@ describe('getDefaultModel', () => {
});
});
describe('resolveCursorRequestModel', () => {
it('keeps requested model when present in available models', () => {
const resolved = resolveCursorRequestModel('claude-4.6-opus', DEFAULT_CURSOR_MODELS);
expect(resolved).toBe('claude-4.6-opus');
});
it('falls back to default when requested model is unavailable', () => {
const resolved = resolveCursorRequestModel('non-existent-model', DEFAULT_CURSOR_MODELS);
expect(resolved).toBe(DEFAULT_CURSOR_MODEL);
});
it('falls back to first available model when default id is absent from available set', () => {
const resolved = resolveCursorRequestModel('non-existent-model', [
{ id: 'fallback-1', name: 'Fallback 1', provider: 'openai' },
{ id: 'fallback-2', name: 'Fallback 2', provider: 'anthropic' },
]);
expect(resolved).toBe('fallback-1');
});
});
describe('detectProvider', () => {
it('detects anthropic models', () => {
expect(detectProvider('claude-4.5-sonnet')).toBe('anthropic');