From 1d40ed7bc74331a64a8b6e58243c2575fa3cbdf8 Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Sat, 11 Apr 2026 17:15:48 +0800 Subject: [PATCH] Fix thread storage target sanitization --- .../app_controller_desktop_thread_storage.dart | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/app/app_controller_desktop_thread_storage.dart b/lib/app/app_controller_desktop_thread_storage.dart index db2575a8..5a147ec9 100644 --- a/lib/app/app_controller_desktop_thread_storage.dart +++ b/lib/app/app_controller_desktop_thread_storage.dart @@ -146,8 +146,8 @@ extension AppControllerDesktopThreadStorage on AppController { SettingsSnapshot snapshot, ) { final features = featuresFor(hostUiFeaturePlatformInternal); - final sanitizedExecutionTarget = features.sanitizeExecutionTarget( - snapshot.assistantExecutionTarget, + final sanitizedExecutionTarget = sanitizeExecutionTargetInternal( + features.sanitizeExecutionTarget(snapshot.assistantExecutionTarget), ); final multiAgentConfig = features.supportsMultiAgent ? snapshot.multiAgent @@ -220,9 +220,12 @@ extension AppControllerDesktopThreadStorage on AppController { AssistantExecutionTarget sanitizeExecutionTargetInternal( AssistantExecutionTarget? target, ) { - return featuresFor( + final sanitized = featuresFor( hostUiFeaturePlatformInternal, ).sanitizeExecutionTarget(target); + return sanitized == AssistantExecutionTarget.singleAgent + ? AssistantExecutionTarget.singleAgent + : AssistantExecutionTarget.gateway; } AssistantExecutionTarget sanitizePersistedExecutionTargetInternal( @@ -683,8 +686,10 @@ extension AppControllerDesktopThreadStorage on AppController { if (!record.workspaceBinding.isComplete) { continue; } - final recordExecutionTarget = assistantExecutionTargetFromExecutionMode( - record.executionBinding.executionMode, + final recordExecutionTarget = sanitizeExecutionTargetInternal( + assistantExecutionTargetFromExecutionMode( + record.executionBinding.executionMode, + ), ); final recordProvider = recordExecutionTarget == AssistantExecutionTarget.singleAgent