fix: reconcile provider effort after model changes

This commit is contained in:
Simos Mikelatos
2026-07-01 00:08:32 +00:00
parent 0206a1f6aa
commit eb08aadaa0

View File

@@ -312,22 +312,29 @@ export function useChatProviderState({ selectedSession, selectedProject: _select
return definition.OPTIONS.find((option) => option.value === model) ?? null;
}, [providerModelCatalog]);
const getAllowedEffortValues = useCallback((
const getEffortOptionsForModel = useCallback((
targetProvider: LLMProvider,
model: string,
): string[] => {
): NonNullable<ProviderModelOption['effort']>['values'] => {
if (!getSupportsEffortForProvider(targetProvider)) {
return [];
}
const option = getModelOption(targetProvider, model);
if (option) {
return option.effort?.values.map((value) => value.value) ?? [];
return option.effort?.values ?? [];
}
return [...(FALLBACK_PROVIDER_EFFORT_VALUES[targetProvider] ?? [])];
return toProviderEffortOptions(FALLBACK_PROVIDER_EFFORT_VALUES[targetProvider] ?? []);
}, [getModelOption, getSupportsEffortForProvider]);
const getAllowedEffortValues = useCallback((
targetProvider: LLMProvider,
model: string,
): string[] => (
getEffortOptionsForModel(targetProvider, model).map((value) => value.value)
), [getEffortOptionsForModel]);
const reconcileStoredEffort = useCallback((
targetProvider: LLMProvider,
model: string,
@@ -554,19 +561,16 @@ export function useChatProviderState({ selectedSession, selectedProject: _select
};
}, [setStoredProviderModel]);
const currentProviderEffort = providerEfforts[provider] ?? DEFAULT_EFFORT_VALUE;
const currentProviderEffortOptions = useMemo(() => {
if (!getSupportsEffortForProvider(provider)) {
return [];
}
const option = getModelOption(provider, providerModels[provider]);
if (option) {
return option.effort?.values ?? [];
}
return toProviderEffortOptions(FALLBACK_PROVIDER_EFFORT_VALUES[provider] ?? []);
}, [getModelOption, getSupportsEffortForProvider, provider, providerModels]);
return getEffortOptionsForModel(provider, providerModels[provider]);
}, [getEffortOptionsForModel, provider, providerModels]);
const currentProviderEffort = useMemo(() => {
return reconcileStoredEffort(
provider,
providerModels[provider],
providerEfforts[provider] ?? DEFAULT_EFFORT_VALUE,
);
}, [provider, providerEfforts, providerModels, reconcileStoredEffort]);
return {
provider,