From e01a0abdf2b86ef2c5f035a50ca87e88ae7f7b95 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Mon, 6 Apr 2026 22:50:58 +0700 Subject: [PATCH] fix(app): wire atomic provider+model selection on mobile draft screen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The mobile preferences modal split CombinedModelSelector's onSelect into separate onSelectProvider and onSelectModel calls, but onSelectProvider was never passed from DraftAgentStatusBar — so selecting a non-cloud provider was silently ignored while only the model ID updated. Add onSelectProviderAndModel prop to ControlledStatusBar and use it on the mobile path, matching the web path's atomic behavior. --- packages/app/src/components/agent-status-bar.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/app/src/components/agent-status-bar.tsx b/packages/app/src/components/agent-status-bar.tsx index 25bd5f5eb..b79c6402f 100644 --- a/packages/app/src/components/agent-status-bar.tsx +++ b/packages/app/src/components/agent-status-bar.tsx @@ -75,6 +75,7 @@ type ControlledAgentStatusBarProps = { modelOptions?: StatusOption[]; selectedModelId?: string; onSelectModel?: (modelId: string) => void; + onSelectProviderAndModel?: (provider: string, modelId: string) => void; thinkingOptions?: StatusOption[]; selectedThinkingOptionId?: string; onSelectThinkingOption?: (thinkingOptionId: string) => void; @@ -203,6 +204,7 @@ function ControlledStatusBar({ modelOptions, selectedModelId, onSelectModel, + onSelectProviderAndModel, thinkingOptions, selectedThinkingOptionId, onSelectThinkingOption, @@ -648,10 +650,14 @@ function ControlledStatusBar({ selectedModel={selectedModelId ?? ""} canSelectProvider={canSelectProviderInModelMenu} onSelect={(selectedProviderId, modelId) => { - if (selectedProviderId !== provider) { - onSelectProvider?.(selectedProviderId); + if (onSelectProviderAndModel) { + onSelectProviderAndModel(selectedProviderId, modelId); + } else { + if (selectedProviderId !== provider) { + onSelectProvider?.(selectedProviderId); + } + onSelectModel?.(modelId); } - onSelectModel?.(modelId); }} favoriteKeys={favoriteKeys} onToggleFavorite={onToggleFavoriteModel} @@ -1135,6 +1141,7 @@ export function DraftAgentStatusBar({ modelOptions={modelOptions} selectedModelId={selectedModel} onSelectModel={(modelId) => onSelectModel(modelId)} + onSelectProviderAndModel={onSelectProviderAndModel} isModelLoading={isAllModelsLoading} favoriteKeys={favoriteKeys} onToggleFavoriteModel={(provider, modelId) => {