Skip to content

Commit e30f4b6

Browse files
keyzouclaude
andcommitted
Fix model picker missing selected model and restore reset button
Pass selectedModel (scoped to the active provider) through to getAppModelOptions so non-built-in models appear in the dropdown. Restore the per-setting reset button on the git writing model row. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent f4e3a64 commit e30f4b6

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

apps/web/src/appSettings.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,13 @@ export function resolveAppModelSelection(
221221

222222
export function getCustomModelOptionsByProvider(
223223
settings: Pick<AppSettings, CustomModelSettingsKey>,
224+
selectedProvider?: ProviderKind | null,
225+
selectedModel?: string | null,
224226
): Record<ProviderKind, ReadonlyArray<{ slug: string; name: string }>> {
225227
const customModelsByProvider = getCustomModelsByProvider(settings);
226228
return {
227-
codex: getAppModelOptions("codex", customModelsByProvider.codex),
228-
claudeAgent: getAppModelOptions("claudeAgent", customModelsByProvider.claudeAgent),
229+
codex: getAppModelOptions("codex", customModelsByProvider.codex, selectedProvider === "codex" ? selectedModel : undefined),
230+
claudeAgent: getAppModelOptions("claudeAgent", customModelsByProvider.claudeAgent, selectedProvider === "claudeAgent" ? selectedModel : undefined),
229231
};
230232
}
231233

apps/web/src/components/ChatView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,8 +623,8 @@ export default function ChatView({ threadId }: ChatViewProps) {
623623
const providerOptionsForDispatch = useMemo(() => getProviderStartOptions(settings), [settings]);
624624
const selectedModelForPicker = selectedModel;
625625
const modelOptionsByProvider = useMemo(
626-
() => getCustomModelOptionsByProvider(settings),
627-
[settings],
626+
() => getCustomModelOptionsByProvider(settings, selectedProvider, selectedModel),
627+
[settings, selectedProvider, selectedModel],
628628
);
629629
const selectedModelForPickerWithCustomFallback = useMemo(() => {
630630
const currentOptions = modelOptionsByProvider[selectedProvider];

apps/web/src/routes/_chat.settings.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ function SettingsRouteView() {
222222
const textGenProvider = settings.textGenerationProvider;
223223
const textGenDefaultModel = DEFAULT_GIT_TEXT_GENERATION_MODEL_BY_PROVIDER[textGenProvider];
224224
const textGenModel = (settings.textGenerationModel ?? textGenDefaultModel) as ModelSlug;
225-
const gitModelOptionsByProvider = getCustomModelOptionsByProvider(settings);
225+
const gitModelOptionsByProvider = getCustomModelOptionsByProvider(settings, textGenProvider, textGenModel);
226226
const selectedCustomModelProviderSettings = MODEL_PROVIDER_SETTINGS.find(
227227
(providerSettings) => providerSettings.provider === selectedCustomModelProvider,
228228
)!;
@@ -603,6 +603,20 @@ function SettingsRouteView() {
603603
<SettingsRow
604604
title="Git writing model"
605605
description="Provider and model used for auto-generated git content."
606+
resetAction={
607+
settings.textGenerationProvider !== defaults.textGenerationProvider ||
608+
settings.textGenerationModel !== defaults.textGenerationModel ? (
609+
<SettingResetButton
610+
label="git writing model"
611+
onClick={() => {
612+
updateSettings({
613+
textGenerationProvider: defaults.textGenerationProvider,
614+
textGenerationModel: defaults.textGenerationModel,
615+
});
616+
}}
617+
/>
618+
) : null
619+
}
606620
control={
607621
<ProviderModelPicker
608622
provider={textGenProvider}

0 commit comments

Comments
 (0)