From 5957967f0e8ec3d98335838d75271d537d5e258d Mon Sep 17 00:00:00 2001 From: "[._.]/ Adam Eivy" Date: Sun, 30 Aug 2026 21:50:34 +0000 Subject: [PATCH] fix: colocate provider effort with default model --- client/src/pages/AIProviders.jsx | 22 +++++++++++----------- client/src/pages/AIProviders.test.jsx | 8 +++++--- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/client/src/pages/AIProviders.jsx b/client/src/pages/AIProviders.jsx index bb5474547e..7ab2359297 100644 --- a/client/src/pages/AIProviders.jsx +++ b/client/src/pages/AIProviders.jsx @@ -1502,6 +1502,17 @@ function ProviderForm({ provider, onClose, onSave, onEditProvider, allProviders

+ setFormData(prev => ({ ...prev, effort }))} + label="Default Effort" + hint={generationControls + ? 'Reasoning effort used when a run does not specify one — passed to the local model as reasoningEffort.' + : 'Reasoning effort used when a run does not specify one.'} + /> + {/* Model Tiers */}

Model Tiers

@@ -1645,17 +1656,6 @@ function ProviderForm({ provider, onClose, onSave, onEditProvider, allProviders {activeTab === 'generation' && (
- setFormData(prev => ({ ...prev, effort }))} - label="Default Effort" - hint={generationControls - ? 'Reasoning effort used when a run does not specify one — passed to the local model as reasoningEffort.' - : 'Reasoning effort used when a run does not specify one.'} - /> - { renderPage(); fireEvent.click(await screen.findByRole('button', { name: 'Edit' })); - await openEditorTab('Generation'); + await openEditorTab('Models'); const effort = await screen.findByLabelText('Default Effort'); expect(effort).toHaveValue(''); @@ -690,11 +690,12 @@ describe('provider reasoning defaults', () => { renderPage(); fireEvent.click(await screen.findByRole('button', { name: 'Edit' })); - await openEditorTab('Generation'); + await openEditorTab('Models'); const effort = await screen.findByLabelText('Default Effort'); fireEvent.change(effort, { target: { value: 'high' } }); + await openEditorTab('Generation'); const thinking = screen.getByLabelText('Thinking mode'); expect(thinking).toHaveValue('true'); fireEvent.change(thinking, { target: { value: 'false' } }); @@ -731,9 +732,10 @@ describe('provider reasoning defaults', () => { renderPage(); fireEvent.click(await screen.findByRole('button', { name: 'Edit' })); - await openEditorTab('Generation'); + await openEditorTab('Models'); fireEvent.change(await screen.findByLabelText('Default Effort'), { target: { value: 'high' } }); + await openEditorTab('Generation'); fireEvent.change(screen.getByLabelText('Temperature'), { target: { value: '0.2' } }); fireEvent.change(screen.getByLabelText('Top-P'), { target: { value: '0.9' } }); expect(screen.getByLabelText('Thinking mode')).toHaveValue('true');