From 350fb615a28aefb60d4aface1531e73f8180e658 Mon Sep 17 00:00:00 2001 From: Jan Burzinski <156842394+janburzinski@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:48:37 +0200 Subject: [PATCH 1/4] feat(claude): update model selector --- .../conversations/conversation-config.test.ts | 16 ++++++------- .../core/conversations/conversation-config.ts | 2 +- .../plugins/src/agents/impl/claude/index.ts | 12 ++++++---- .../chat-composer/chat-composer.stories.tsx | 19 +++++++++------ .../combobox-popover.stories.tsx | 23 +++++++++++++------ .../src/react/examples/chat-panel.stories.tsx | 15 ++++++++---- 6 files changed, 55 insertions(+), 32 deletions(-) diff --git a/apps/emdash-desktop/src/shared/core/conversations/conversation-config.test.ts b/apps/emdash-desktop/src/shared/core/conversations/conversation-config.test.ts index 98200864c0..b488a3e24c 100644 --- a/apps/emdash-desktop/src/shared/core/conversations/conversation-config.test.ts +++ b/apps/emdash-desktop/src/shared/core/conversations/conversation-config.test.ts @@ -7,7 +7,7 @@ describe('conversation-config v1 schema', () => { version: '1', type: 'pty', autoApprove: true, - model: 'claude-sonnet-4-5', + model: 'claude-sonnet-5', }); expect(result.status).toBe('ok'); if (result.status === 'ok') { @@ -15,7 +15,7 @@ describe('conversation-config v1 schema', () => { version: '1', type: 'pty', autoApprove: true, - model: 'claude-sonnet-4-5', + model: 'claude-sonnet-5', }); } }); @@ -24,18 +24,18 @@ describe('conversation-config v1 schema', () => { const result = conversationConfig.safeParse({ version: '1', type: 'acp', - model: 'claude-opus-4-5', + model: 'claude-opus-4-8', }); expect(result.status).toBe('ok'); if (result.status === 'ok') { - expect(result.data).toEqual({ version: '1', type: 'acp', model: 'claude-opus-4-5' }); + expect(result.data).toEqual({ version: '1', type: 'acp', model: 'claude-opus-4-8' }); } }); it('upgrades a v0 legacy row (no version field) to v1 pty', () => { const result = conversationConfig.safeParse({ autoApprove: true, - model: 'claude-sonnet-4-5', + model: 'claude-sonnet-5', }); expect(result.status).toBe('ok'); if (result.status === 'ok') { @@ -43,7 +43,7 @@ describe('conversation-config v1 schema', () => { version: '1', type: 'pty', autoApprove: true, - model: 'claude-sonnet-4-5', + model: 'claude-sonnet-5', }); } }); @@ -97,10 +97,10 @@ describe('conversation-config v1 schema', () => { }); it('parses and round-trips model field on v0 input (upgraded to v1)', () => { - const result = conversationConfig.safeParse({ model: 'claude-sonnet-4-5' }); + const result = conversationConfig.safeParse({ model: 'claude-sonnet-5' }); expect(result.status).toBe('ok'); if (result.status === 'ok') { - expect(result.data.model).toBe('claude-sonnet-4-5'); + expect(result.data.model).toBe('claude-sonnet-5'); } }); }); diff --git a/apps/emdash-desktop/src/shared/core/conversations/conversation-config.ts b/apps/emdash-desktop/src/shared/core/conversations/conversation-config.ts index 79a991e99c..27fd9b6c59 100644 --- a/apps/emdash-desktop/src/shared/core/conversations/conversation-config.ts +++ b/apps/emdash-desktop/src/shared/core/conversations/conversation-config.ts @@ -6,7 +6,7 @@ const conversationConfigV0Schema = z.object({ /** @deprecated Moved to conversations.session_id column; stripped on upgrade to v1. */ providerSessionId: z.string().optional(), initialPrompt: z.string().optional(), - /** Model to pass to the agent CLI (e.g. 'claude-sonnet-4-5', 'o4-mini'). Empty string or absent = CLI default. */ + /** Model to pass to the agent CLI (e.g. 'claude-sonnet-5', 'o4-mini'). Empty string or absent = CLI default. */ model: z.string().optional(), }); diff --git a/packages/plugins/src/agents/impl/claude/index.ts b/packages/plugins/src/agents/impl/claude/index.ts index 8a842ffebb..215f42a207 100644 --- a/packages/plugins/src/agents/impl/claude/index.ts +++ b/packages/plugins/src/agents/impl/claude/index.ts @@ -35,12 +35,16 @@ export const plugin = definePlugin( models: { kind: 'selectable', modelOptions: { - 'claude-opus-4-5': { - name: 'Claude Opus 4.5', + 'claude-opus-4-8': { + name: 'Claude Opus 4.8', modelFeatures: { intelligence: 5, speed: 2 }, }, - 'claude-sonnet-4-5': { - name: 'Claude Sonnet 4.5', + 'claude-fable-5': { + name: 'Claude Fable 5', + modelFeatures: { intelligence: 4, speed: 3 }, + }, + 'claude-sonnet-5': { + name: 'Claude Sonnet 5', modelFeatures: { intelligence: 4, speed: 4 }, }, 'claude-haiku-4-5': { diff --git a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx index 9d0ed52971..512d7e758e 100644 --- a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx +++ b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx @@ -15,13 +15,18 @@ import * as s from '@react/story-layout.css'; import { sx } from '@styles/utilities/sprinkles.css'; const MOCK_MODELS: Record = { - 'claude-opus-4': { - name: 'Claude Opus 4', + 'claude-opus-4-8': { + name: 'Claude Opus 4.8', description: 'Most capable model for complex reasoning and nuanced tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1 }, }, - 'claude-sonnet-4-5': { - name: 'Claude Sonnet 4.5', + 'claude-fable-5': { + name: 'Claude Fable 5', + description: 'Balanced model for creative and everyday coding tasks.', + modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, + }, + 'claude-sonnet-5': { + name: 'Claude Sonnet 5', description: 'Excellent balance of speed and intelligence for everyday tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.75, intelligence: 0.85 }, }, @@ -102,7 +107,7 @@ function ComposerPlayground(args: PlaygroundArgs) { } = args; const [selectedAgent, setSelectedAgent] = useState('claude'); - const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); const [dismissed, setDismissed] = useState(false); useEffect(() => { @@ -236,7 +241,7 @@ const MOCK_EFFORT_OPTIONS: Record = { * The row is hidden entirely when `effortOptions` is null. */ function EffortSelectorDemo() { - const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); const [selectedEffort, setSelectedEffort] = useState('medium'); return ( @@ -263,7 +268,7 @@ export const WithEffortSelector: Story = { * `effortOptions` is null (agent doesn't advertise a thought_level option). */ function WithoutEffortSelectorDemo() { - const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); return ( diff --git a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx index a7d20b91e1..dd57094e91 100644 --- a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx +++ b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx @@ -19,8 +19,8 @@ interface ModelItem { const MODELS: ModelItem[] = [ { - id: 'claude-opus-4', - name: 'Claude Opus 4', + id: 'claude-opus-4-8', + name: 'Claude Opus 4.8', provider: 'Anthropic', description: 'Most capable model for complex reasoning and nuanced tasks.', contextK: 200, @@ -28,8 +28,17 @@ const MODELS: ModelItem[] = [ intelligence: 1.0, }, { - id: 'claude-sonnet-4-5', - name: 'Claude Sonnet 4.5', + id: 'claude-fable-5', + name: 'Claude Fable 5', + provider: 'Anthropic', + description: 'Balanced model for creative and everyday coding tasks.', + contextK: 200, + speed: 0.65, + intelligence: 0.8, + }, + { + id: 'claude-sonnet-5', + name: 'Claude Sonnet 5', provider: 'Anthropic', description: 'Excellent balance of speed and intelligence.', contextK: 200, @@ -149,7 +158,7 @@ export default meta; type Story = StoryObj; function BasicStory() { - const [value, setValue] = useState('claude-sonnet-4-5'); + const [value, setValue] = useState('claude-sonnet-5'); return (

@@ -174,7 +183,7 @@ function BasicStory() { } function WithDetailHoverCardStory() { - const [value, setValue] = useState('claude-sonnet-4-5'); + const [value, setValue] = useState('claude-sonnet-5'); return (

@@ -243,7 +252,7 @@ function DetailCardAboveStory() { } function WithFooterStory() { - const [value, setValue] = useState('claude-sonnet-4-5'); + const [value, setValue] = useState('claude-sonnet-5'); const [lastAction, setLastAction] = useState('—'); return ( diff --git a/packages/ui/src/react/examples/chat-panel.stories.tsx b/packages/ui/src/react/examples/chat-panel.stories.tsx index 1484cb8e0e..f7c1bc871e 100644 --- a/packages/ui/src/react/examples/chat-panel.stories.tsx +++ b/packages/ui/src/react/examples/chat-panel.stories.tsx @@ -85,13 +85,18 @@ const MOCK_FILES: MentionItem[] = [ ]; const MOCK_MODELS: Record = { - 'claude-opus-4': { - name: 'Claude Opus 4', + 'claude-opus-4-8': { + name: 'Claude Opus 4.8', description: 'Most capable model for complex reasoning and nuanced tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1.0 }, }, - 'claude-sonnet-4-5': { - name: 'Claude Sonnet 4.5', + 'claude-fable-5': { + name: 'Claude Fable 5', + description: 'Balanced model for creative and everyday coding tasks.', + modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, + }, + 'claude-sonnet-5': { + name: 'Claude Sonnet 5', description: 'Excellent balance of speed and intelligence for everyday tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.75, intelligence: 0.85 }, }, @@ -175,7 +180,7 @@ function LiveChatPanel({ const editorApiRef = useRef(null); const [composerSlot, setComposerSlot] = useState(null); const [atBottom, setAtBottom] = useState(true); - const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); const [attachments, setAttachments] = useState(SEED_ATTACHMENTS); const [viewer, setViewer] = useState<{ src?: string; alt?: string } | null>(null); From bb24084caddda334250a6fb40f653b484dc4dc7e Mon Sep 17 00:00:00 2001 From: Jan Burzinski <156842394+janburzinski@users.noreply.github.com> Date: Wed, 1 Jul 2026 18:08:24 +0200 Subject: [PATCH 2/4] fix(claude): prioritize fable model --- .../plugins/src/agents/impl/claude/index.ts | 8 ++++---- .../chat-composer/chat-composer.stories.tsx | 10 +++++----- .../combobox-popover.stories.tsx | 18 +++++++++--------- .../src/react/examples/chat-panel.stories.tsx | 10 +++++----- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/packages/plugins/src/agents/impl/claude/index.ts b/packages/plugins/src/agents/impl/claude/index.ts index 215f42a207..99635ea255 100644 --- a/packages/plugins/src/agents/impl/claude/index.ts +++ b/packages/plugins/src/agents/impl/claude/index.ts @@ -35,14 +35,14 @@ export const plugin = definePlugin( models: { kind: 'selectable', modelOptions: { - 'claude-opus-4-8': { - name: 'Claude Opus 4.8', - modelFeatures: { intelligence: 5, speed: 2 }, - }, 'claude-fable-5': { name: 'Claude Fable 5', modelFeatures: { intelligence: 4, speed: 3 }, }, + 'claude-opus-4-8': { + name: 'Claude Opus 4.8', + modelFeatures: { intelligence: 5, speed: 2 }, + }, 'claude-sonnet-5': { name: 'Claude Sonnet 5', modelFeatures: { intelligence: 4, speed: 4 }, diff --git a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx index 512d7e758e..b8ddf78895 100644 --- a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx +++ b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx @@ -15,16 +15,16 @@ import * as s from '@react/story-layout.css'; import { sx } from '@styles/utilities/sprinkles.css'; const MOCK_MODELS: Record = { - 'claude-opus-4-8': { - name: 'Claude Opus 4.8', - description: 'Most capable model for complex reasoning and nuanced tasks.', - modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1 }, - }, 'claude-fable-5': { name: 'Claude Fable 5', description: 'Balanced model for creative and everyday coding tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, }, + 'claude-opus-4-8': { + name: 'Claude Opus 4.8', + description: 'Most capable model for complex reasoning and nuanced tasks.', + modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1 }, + }, 'claude-sonnet-5': { name: 'Claude Sonnet 5', description: 'Excellent balance of speed and intelligence for everyday tasks.', diff --git a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx index dd57094e91..fad626c732 100644 --- a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx +++ b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx @@ -18,15 +18,6 @@ interface ModelItem { } const MODELS: ModelItem[] = [ - { - id: 'claude-opus-4-8', - name: 'Claude Opus 4.8', - provider: 'Anthropic', - description: 'Most capable model for complex reasoning and nuanced tasks.', - contextK: 200, - speed: 0.4, - intelligence: 1.0, - }, { id: 'claude-fable-5', name: 'Claude Fable 5', @@ -36,6 +27,15 @@ const MODELS: ModelItem[] = [ speed: 0.65, intelligence: 0.8, }, + { + id: 'claude-opus-4-8', + name: 'Claude Opus 4.8', + provider: 'Anthropic', + description: 'Most capable model for complex reasoning and nuanced tasks.', + contextK: 200, + speed: 0.4, + intelligence: 1.0, + }, { id: 'claude-sonnet-5', name: 'Claude Sonnet 5', diff --git a/packages/ui/src/react/examples/chat-panel.stories.tsx b/packages/ui/src/react/examples/chat-panel.stories.tsx index f7c1bc871e..df644b8291 100644 --- a/packages/ui/src/react/examples/chat-panel.stories.tsx +++ b/packages/ui/src/react/examples/chat-panel.stories.tsx @@ -85,16 +85,16 @@ const MOCK_FILES: MentionItem[] = [ ]; const MOCK_MODELS: Record = { - 'claude-opus-4-8': { - name: 'Claude Opus 4.8', - description: 'Most capable model for complex reasoning and nuanced tasks.', - modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1.0 }, - }, 'claude-fable-5': { name: 'Claude Fable 5', description: 'Balanced model for creative and everyday coding tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, }, + 'claude-opus-4-8': { + name: 'Claude Opus 4.8', + description: 'Most capable model for complex reasoning and nuanced tasks.', + modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1.0 }, + }, 'claude-sonnet-5': { name: 'Claude Sonnet 5', description: 'Excellent balance of speed and intelligence for everyday tasks.', From 20a77292d1e2d122f8809d437de2c79a746a8ab5 Mon Sep 17 00:00:00 2001 From: Jan Burzinski <156842394+janburzinski@users.noreply.github.com> Date: Wed, 1 Jul 2026 18:17:20 +0200 Subject: [PATCH 3/4] chore(ui): restore story model order --- .../chat-composer/chat-composer.stories.tsx | 10 +++++----- .../combobox-popover.stories.tsx | 18 +++++++++--------- .../src/react/examples/chat-panel.stories.tsx | 10 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx index b8ddf78895..512d7e758e 100644 --- a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx +++ b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx @@ -15,16 +15,16 @@ import * as s from '@react/story-layout.css'; import { sx } from '@styles/utilities/sprinkles.css'; const MOCK_MODELS: Record = { - 'claude-fable-5': { - name: 'Claude Fable 5', - description: 'Balanced model for creative and everyday coding tasks.', - modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, - }, 'claude-opus-4-8': { name: 'Claude Opus 4.8', description: 'Most capable model for complex reasoning and nuanced tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1 }, }, + 'claude-fable-5': { + name: 'Claude Fable 5', + description: 'Balanced model for creative and everyday coding tasks.', + modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, + }, 'claude-sonnet-5': { name: 'Claude Sonnet 5', description: 'Excellent balance of speed and intelligence for everyday tasks.', diff --git a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx index fad626c732..dd57094e91 100644 --- a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx +++ b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx @@ -18,15 +18,6 @@ interface ModelItem { } const MODELS: ModelItem[] = [ - { - id: 'claude-fable-5', - name: 'Claude Fable 5', - provider: 'Anthropic', - description: 'Balanced model for creative and everyday coding tasks.', - contextK: 200, - speed: 0.65, - intelligence: 0.8, - }, { id: 'claude-opus-4-8', name: 'Claude Opus 4.8', @@ -36,6 +27,15 @@ const MODELS: ModelItem[] = [ speed: 0.4, intelligence: 1.0, }, + { + id: 'claude-fable-5', + name: 'Claude Fable 5', + provider: 'Anthropic', + description: 'Balanced model for creative and everyday coding tasks.', + contextK: 200, + speed: 0.65, + intelligence: 0.8, + }, { id: 'claude-sonnet-5', name: 'Claude Sonnet 5', diff --git a/packages/ui/src/react/examples/chat-panel.stories.tsx b/packages/ui/src/react/examples/chat-panel.stories.tsx index df644b8291..f7c1bc871e 100644 --- a/packages/ui/src/react/examples/chat-panel.stories.tsx +++ b/packages/ui/src/react/examples/chat-panel.stories.tsx @@ -85,16 +85,16 @@ const MOCK_FILES: MentionItem[] = [ ]; const MOCK_MODELS: Record = { - 'claude-fable-5': { - name: 'Claude Fable 5', - description: 'Balanced model for creative and everyday coding tasks.', - modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, - }, 'claude-opus-4-8': { name: 'Claude Opus 4.8', description: 'Most capable model for complex reasoning and nuanced tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1.0 }, }, + 'claude-fable-5': { + name: 'Claude Fable 5', + description: 'Balanced model for creative and everyday coding tasks.', + modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, + }, 'claude-sonnet-5': { name: 'Claude Sonnet 5', description: 'Excellent balance of speed and intelligence for everyday tasks.', From dff8fab415198f659d82838f5291e333c2e5c0f0 Mon Sep 17 00:00:00 2001 From: Jan Burzinski <156842394+janburzinski@users.noreply.github.com> Date: Wed, 1 Jul 2026 18:37:06 +0200 Subject: [PATCH 4/4] chore(ui): revert story model updates --- .../chat-composer/chat-composer.stories.tsx | 19 ++++++--------- .../combobox-popover.stories.tsx | 23 ++++++------------- .../src/react/examples/chat-panel.stories.tsx | 15 ++++-------- 3 files changed, 19 insertions(+), 38 deletions(-) diff --git a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx index 512d7e758e..9d0ed52971 100644 --- a/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx +++ b/packages/ui/src/react/components/chat-composer/chat-composer.stories.tsx @@ -15,18 +15,13 @@ import * as s from '@react/story-layout.css'; import { sx } from '@styles/utilities/sprinkles.css'; const MOCK_MODELS: Record = { - 'claude-opus-4-8': { - name: 'Claude Opus 4.8', + 'claude-opus-4': { + name: 'Claude Opus 4', description: 'Most capable model for complex reasoning and nuanced tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1 }, }, - 'claude-fable-5': { - name: 'Claude Fable 5', - description: 'Balanced model for creative and everyday coding tasks.', - modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, - }, - 'claude-sonnet-5': { - name: 'Claude Sonnet 5', + 'claude-sonnet-4-5': { + name: 'Claude Sonnet 4.5', description: 'Excellent balance of speed and intelligence for everyday tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.75, intelligence: 0.85 }, }, @@ -107,7 +102,7 @@ function ComposerPlayground(args: PlaygroundArgs) { } = args; const [selectedAgent, setSelectedAgent] = useState('claude'); - const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); const [dismissed, setDismissed] = useState(false); useEffect(() => { @@ -241,7 +236,7 @@ const MOCK_EFFORT_OPTIONS: Record = { * The row is hidden entirely when `effortOptions` is null. */ function EffortSelectorDemo() { - const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); const [selectedEffort, setSelectedEffort] = useState('medium'); return ( @@ -268,7 +263,7 @@ export const WithEffortSelector: Story = { * `effortOptions` is null (agent doesn't advertise a thought_level option). */ function WithoutEffortSelectorDemo() { - const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); return ( diff --git a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx index dd57094e91..a7d20b91e1 100644 --- a/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx +++ b/packages/ui/src/react/components/combobox-popover/combobox-popover.stories.tsx @@ -19,8 +19,8 @@ interface ModelItem { const MODELS: ModelItem[] = [ { - id: 'claude-opus-4-8', - name: 'Claude Opus 4.8', + id: 'claude-opus-4', + name: 'Claude Opus 4', provider: 'Anthropic', description: 'Most capable model for complex reasoning and nuanced tasks.', contextK: 200, @@ -28,17 +28,8 @@ const MODELS: ModelItem[] = [ intelligence: 1.0, }, { - id: 'claude-fable-5', - name: 'Claude Fable 5', - provider: 'Anthropic', - description: 'Balanced model for creative and everyday coding tasks.', - contextK: 200, - speed: 0.65, - intelligence: 0.8, - }, - { - id: 'claude-sonnet-5', - name: 'Claude Sonnet 5', + id: 'claude-sonnet-4-5', + name: 'Claude Sonnet 4.5', provider: 'Anthropic', description: 'Excellent balance of speed and intelligence.', contextK: 200, @@ -158,7 +149,7 @@ export default meta; type Story = StoryObj; function BasicStory() { - const [value, setValue] = useState('claude-sonnet-5'); + const [value, setValue] = useState('claude-sonnet-4-5'); return (

@@ -183,7 +174,7 @@ function BasicStory() { } function WithDetailHoverCardStory() { - const [value, setValue] = useState('claude-sonnet-5'); + const [value, setValue] = useState('claude-sonnet-4-5'); return (

@@ -252,7 +243,7 @@ function DetailCardAboveStory() { } function WithFooterStory() { - const [value, setValue] = useState('claude-sonnet-5'); + const [value, setValue] = useState('claude-sonnet-4-5'); const [lastAction, setLastAction] = useState('—'); return ( diff --git a/packages/ui/src/react/examples/chat-panel.stories.tsx b/packages/ui/src/react/examples/chat-panel.stories.tsx index f7c1bc871e..1484cb8e0e 100644 --- a/packages/ui/src/react/examples/chat-panel.stories.tsx +++ b/packages/ui/src/react/examples/chat-panel.stories.tsx @@ -85,18 +85,13 @@ const MOCK_FILES: MentionItem[] = [ ]; const MOCK_MODELS: Record = { - 'claude-opus-4-8': { - name: 'Claude Opus 4.8', + 'claude-opus-4': { + name: 'Claude Opus 4', description: 'Most capable model for complex reasoning and nuanced tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.4, intelligence: 1.0 }, }, - 'claude-fable-5': { - name: 'Claude Fable 5', - description: 'Balanced model for creative and everyday coding tasks.', - modelFeatures: { contextWindowSize: 200_000, speed: 0.65, intelligence: 0.8 }, - }, - 'claude-sonnet-5': { - name: 'Claude Sonnet 5', + 'claude-sonnet-4-5': { + name: 'Claude Sonnet 4.5', description: 'Excellent balance of speed and intelligence for everyday tasks.', modelFeatures: { contextWindowSize: 200_000, speed: 0.75, intelligence: 0.85 }, }, @@ -180,7 +175,7 @@ function LiveChatPanel({ const editorApiRef = useRef(null); const [composerSlot, setComposerSlot] = useState(null); const [atBottom, setAtBottom] = useState(true); - const [selectedModel, setSelectedModel] = useState('claude-sonnet-5'); + const [selectedModel, setSelectedModel] = useState('claude-sonnet-4-5'); const [attachments, setAttachments] = useState(SEED_ATTACHMENTS); const [viewer, setViewer] = useState<{ src?: string; alt?: string } | null>(null);