fix(settings): fix wrong type caused by as assertion and migration

Add migration step 180 to properly handle 'undefined' string values in OpenAI settings
Update selector components to use value conversion helpers for summaryText and verbosity
This commit is contained in:
icarus
2025-12-02 11:16:52 +08:00
parent 3e6dc56196
commit 5d0ad18e45
2 changed files with 21 additions and 4 deletions
@@ -203,9 +203,9 @@ const OpenAISettingsGroup: FC<Props> = ({ model, providerId, SettingGroup, Setti
</Tooltip>
</SettingRowTitleSmall>
<Selector
value={summaryText}
value={toOptionValue(summaryText)}
onChange={(value) => {
setSummaryText(value as OpenAISummaryText)
setSummaryText(toRealValue(value))
}}
options={summaryTextOptions}
/>
@@ -222,9 +222,9 @@ const OpenAISettingsGroup: FC<Props> = ({ model, providerId, SettingGroup, Setti
</Tooltip>
</SettingRowTitleSmall>
<Selector
value={verbosity}
value={toOptionValue(verbosity)}
onChange={(value) => {
setVerbosity(value as OpenAIVerbosity)
setVerbosity(toRealValue(value))
}}
options={verbosityOptions}
/>
+17
View File
@@ -2906,6 +2906,23 @@ const migrateConfig = {
logger.error('migrate 179 error', error as Error)
return state
}
},
'180': (state: RootState) => {
try {
// @ts-expect-error
if (state.settings.openAI.summaryText === 'undefined') {
state.settings.openAI.summaryText = undefined
}
// @ts-expect-error
if (state.settings.openAI.verbosity === 'undefined') {
state.settings.openAI.summaryText = undefined
}
logger.info('migrate 180 success')
return state
} catch (error) {
logger.error('migrate 180 error', error as Error)
return state
}
}
}