From 1ec455a9c31021d96903e821a4c9fc96fa9b87dc Mon Sep 17 00:00:00 2001 From: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com> Date: Wed, 12 Aug 2026 19:50:00 +0530 Subject: [PATCH] fix(models): correct Sonnet 4 thinking alias --- src/models.ts | 2 +- tests/models.test.ts | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/models.ts b/src/models.ts index f1d9ad0b..ff400df4 100644 --- a/src/models.ts +++ b/src/models.ts @@ -311,7 +311,7 @@ const BUILTIN_ALIASES: Record = { // reports that quote literal slugs (e.g. forum.cursor.com/t/154933). 'claude-4-sonnet': 'claude-sonnet-4', 'claude-4-sonnet-1m': 'claude-sonnet-4', - 'claude-4-sonnet-thinking': 'claude-sonnet-4-5', + 'claude-4-sonnet-thinking': 'claude-sonnet-4', 'claude-4.5-sonnet': 'claude-sonnet-4-5', 'claude-4.5-sonnet-thinking': 'claude-sonnet-4-5', 'claude-4.6-sonnet': 'claude-sonnet-4-6', diff --git a/tests/models.test.ts b/tests/models.test.ts index e8910e37..3e2b1655 100644 --- a/tests/models.test.ts +++ b/tests/models.test.ts @@ -505,7 +505,7 @@ describe('Cursor model variants resolve to pricing', () => { // Sonnet family ['claude-4-sonnet', 'claude-sonnet-4'], ['claude-4-sonnet-1m', 'claude-sonnet-4'], - ['claude-4-sonnet-thinking', 'claude-sonnet-4-5'], + ['claude-4-sonnet-thinking', 'claude-sonnet-4'], ['claude-4.5-sonnet', 'claude-sonnet-4-5'], ['claude-4.5-sonnet-thinking', 'claude-sonnet-4-5'], ['claude-4.6-sonnet', 'claude-sonnet-4-6'], @@ -558,6 +558,14 @@ describe('Cursor model variants resolve to pricing', () => { expect(costs!.outputCostPerToken).toBe(expected!.outputCostPerToken) }) } + + // Regression for #912: Cursor's unversioned `claude-4-sonnet-thinking` + // slug is the thinking variant of Sonnet 4, not Sonnet 4.5. The two models + // currently share a price, so the display name pins the canonical identity + // independently of today's pricing coincidence. + it('keeps claude-4-sonnet-thinking in the Sonnet 4 model family', () => { + expect(getShortModelName('claude-4-sonnet-thinking')).toBe('Sonnet 4') + }) }) describe('Cursor house model pricing', () => {