diff --git a/desktop/src/store/connectionStore.ts b/desktop/src/store/connectionStore.ts index e9fa984..b1e242e 100644 --- a/desktop/src/store/connectionStore.ts +++ b/desktop/src/store/connectionStore.ts @@ -546,6 +546,17 @@ export const useConnectionStore = create((set, get) => { await kernelClient.connect(); set({ gatewayVersion: 'saas-relay', connectionState: 'connected' }); + + // 同步 modelToUse 到 conversationStore(首次登录时 currentModel 可能为空) + try { + const cs = await loadConversationStore(); + const currentInStore = cs?.useConversationStore.getState().currentModel; + if (!currentInStore && modelToUse) { + cs?.useConversationStore.getState().setCurrentModel(modelToUse); + log.info(`Synced currentModel after SaaS relay connect: ${modelToUse}`); + } + } catch { /* non-critical */ } + log.debug('Connected via SaaS relay (kernel backend):', { model: modelToUse, baseUrl: `${session.saasUrl}/api/v1/relay`, @@ -578,6 +589,16 @@ export const useConnectionStore = create((set, get) => { initializeStores(); log.debug('Connected to SaaS relay (browser mode)', { relayModel: fallbackModelId }); + + // 同步 currentModel 到 conversationStore(浏览器路径) + try { + const cs = await loadConversationStore(); + const currentInStore = cs?.useConversationStore.getState().currentModel; + if (!currentInStore && fallbackModelId) { + cs?.useConversationStore.getState().setCurrentModel(fallbackModelId); + log.info(`Synced currentModel after browser SaaS relay connect: ${fallbackModelId}`); + } + } catch { /* non-critical */ } } return; } diff --git a/desktop/src/store/saasStore.ts b/desktop/src/store/saasStore.ts index 1929ea7..8055354 100644 --- a/desktop/src/store/saasStore.ts +++ b/desktop/src/store/saasStore.ts @@ -488,11 +488,15 @@ export const useSaaSStore = create((set, get) => { const { useConversationStore } = await import('./chat/conversationStore'); const current = useConversationStore.getState().currentModel; const modelIds = models.map(m => m.alias || m.id); - if (current && !modelIds.includes(current)) { - const firstModel = models[0]; - const fallbackId = firstModel.alias || firstModel.id; + const firstModel = models[0]; + const fallbackId = firstModel.alias || firstModel.id; + if (!current || !modelIds.includes(current)) { useConversationStore.getState().setCurrentModel(fallbackId); - log.info(`Synced currentModel: ${current} not available, switched to ${fallbackId}`); + if (current) { + log.info(`Synced currentModel: ${current} not available, switched to ${fallbackId}`); + } else { + log.info(`Auto-selected first available model: ${fallbackId}`); + } } } catch (syncErr) { log.warn('Failed to sync currentModel after fetching models:', syncErr);