fix: correctly track model provider ID for Qwen and all providers
Some checks failed
Release Binaries / release (push) Has been cancelled

Changes:
1. Added cachedProviderId signal in MultiX v2 component
2. Updated syncFromStore to also sync provider ID from task session
3. Immediately update cached model and provider IDs on model change
4. Pass correct providerId to LiteModelSelector component

This fixes the issue where selecting Qwen models caused chat input to stop
responding, because the provider ID was not being tracked correctly.
This commit is contained in:
Gemini AI
2025-12-28 03:40:56 +04:00
Unverified
parent 38cb8bcb0c
commit 6bd329701b

View File

@@ -69,6 +69,7 @@ export default function MultiXV2(props: MultiXV2Props) {
const [selectedTaskId, setSelectedTaskIdLocal] = createSignal<string | null>(null); const [selectedTaskId, setSelectedTaskIdLocal] = createSignal<string | null>(null);
const [messageIds, setMessageIds] = createSignal<string[]>([]); const [messageIds, setMessageIds] = createSignal<string[]>([]);
const [cachedModelId, setCachedModelId] = createSignal("unknown"); const [cachedModelId, setCachedModelId] = createSignal("unknown");
const [cachedProviderId, setCachedProviderId] = createSignal("");
const [cachedAgent, setCachedAgent] = createSignal(""); const [cachedAgent, setCachedAgent] = createSignal("");
const [cachedTokensUsed, setCachedTokensUsed] = createSignal(0); const [cachedTokensUsed, setCachedTokensUsed] = createSignal(0);
const [cachedCost, setCachedCost] = createSignal(0); const [cachedCost, setCachedCost] = createSignal(0);
@@ -184,6 +185,9 @@ export default function MultiXV2(props: MultiXV2Props) {
if (taskSession?.model?.modelId) { if (taskSession?.model?.modelId) {
setCachedModelId(taskSession.model.modelId); setCachedModelId(taskSession.model.modelId);
} }
if (taskSession?.model?.providerId) {
setCachedProviderId(taskSession.model.providerId);
}
if (taskSession?.agent) { if (taskSession?.agent) {
setCachedAgent(taskSession.agent); setCachedAgent(taskSession.agent);
} }
@@ -677,11 +681,14 @@ export default function MultiXV2(props: MultiXV2Props) {
<LiteModelSelector <LiteModelSelector
instanceId={props.instanceId} instanceId={props.instanceId}
sessionId={getActiveTaskSessionId()} sessionId={getActiveTaskSessionId()}
currentModel={{ providerId: "", modelId: cachedModelId() }} currentModel={{ providerId: cachedProviderId(), modelId: cachedModelId() }}
onModelChange={(model) => { onModelChange={(model) => {
// Update the TASK's session, not a global cache // Update the TASK's session, not a global cache
const taskSessionId = getActiveTaskSessionId(); const taskSessionId = getActiveTaskSessionId();
log.info("[MultiX] Changing model for task session", { taskSessionId, model }); log.info("[MultiX] Changing model for task session", { taskSessionId, model });
// Immediately update cached values for responsive UI
setCachedModelId(model.modelId);
setCachedProviderId(model.providerId);
updateSessionModelForSession(props.instanceId, taskSessionId, model); updateSessionModelForSession(props.instanceId, taskSessionId, model);
// Force immediate sync to reflect the change // Force immediate sync to reflect the change
setTimeout(() => syncFromStore(), 50); setTimeout(() => syncFromStore(), 50);