Skip to content

Commit 7c51243

Browse files
committed
Fix startup effort alias default display
Preserve provider alias reasoning defaults in the startup banner when no saved /effort value or CLAUDE_CODE_EFFORT_LEVEL override is present. Saved settings and env overrides still take precedence, and xhigh aliases are normalized through the standard effort representation before display. Add a regression test for the gpt-5.4 OpenAI banner showing the alias default high effort in a clean settings session.
1 parent 7c8163d commit 7c51243

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/components/StartupScreen.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,14 @@ describe('detectProvider — explicit dedicated-provider env flags', () => {
269269
})
270270

271271
describe('detectProvider — startup effort display', () => {
272+
test('OpenAI startup banner uses provider alias default when no saved or env effort is set', () => {
273+
setupOpenAIMode('https://api.openai.com/v1', 'gpt-5.4')
274+
275+
const result = detectProvider()
276+
277+
expect(result.model).toBe('gpt-5.4 (high)')
278+
})
279+
272280
test('OpenAI startup banner uses saved /effort over provider alias default', () => {
273281
setupOpenAIMode('https://api.openai.com/v1', 'gpt-5.4')
274282
setSessionSettingsCache({ settings: { effortLevel: 'medium' }, errors: [] })

src/components/StartupScreen.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ import { DEFAULT_GEMINI_MODEL } from '../utils/providerProfile.js'
1717
import { getGlobalConfig } from '../utils/config.js'
1818
import {
1919
getDisplayedEffortLevel,
20+
getEffortEnvOverride,
2021
getInitialEffortSetting,
2122
modelSupportsEffort,
23+
openAIEffortToStandard,
2224
} from '../utils/effort.js'
2325
import { ANSI_DIM, ANSI_RESET, ansiRgb } from '../utils/terminalAnsi.js'
2426
import {
@@ -156,7 +158,14 @@ export function detectProvider(modelOverride?: string): { name: string; model: s
156158
// provider alias may carry a default reasoning effort, but saved /effort
157159
// and CLAUDE_CODE_EFFORT_LEVEL must take precedence in the startup banner.
158160
if (modelSupportsEffort(displayModel)) {
159-
displayModel = `${displayModel} (${getDisplayedEffortLevel(displayModel, getInitialEffortSetting())})`
161+
const savedEffort = getInitialEffortSetting()
162+
const aliasDefaultEffort =
163+
getEffortEnvOverride() === undefined &&
164+
savedEffort === undefined &&
165+
resolvedRequest.reasoning?.effort
166+
? openAIEffortToStandard(resolvedRequest.reasoning.effort)
167+
: undefined
168+
displayModel = `${displayModel} (${getDisplayedEffortLevel(displayModel, savedEffort ?? aliasDefaultEffort)})`
160169
}
161170

162171
return { name, model: displayModel, baseUrl, isLocal }

0 commit comments

Comments
 (0)