From d01358d0e63cdf70e1d26b1cb2d07e34303659ce Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Mon, 6 Apr 2026 16:52:22 +0800 Subject: [PATCH] Preserve auto execution targets in assistant UI --- .../assistant/assistant_page_composer_bar.dart | 9 ++++++--- .../assistant/assistant_page_state_actions.dart | 10 +++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/features/assistant/assistant_page_composer_bar.dart b/lib/features/assistant/assistant_page_composer_bar.dart index 6b5e2b2d..5ae26433 100644 --- a/lib/features/assistant/assistant_page_composer_bar.dart +++ b/lib/features/assistant/assistant_page_composer_bar.dart @@ -358,13 +358,16 @@ class ComposerBarStateInternal extends State { final visibleExecutionTargets = controller.visibleAssistantExecutionTargets( uiFeatures.availableExecutionTargets, ); + final currentExecutionTarget = controller.assistantExecutionTarget; final executionTarget = visibleExecutionTargets.contains( - controller.assistantExecutionTarget, + currentExecutionTarget, ) - ? controller.assistantExecutionTarget + ? currentExecutionTarget + : currentExecutionTarget == AssistantExecutionTarget.auto + ? currentExecutionTarget : (visibleExecutionTargets.isNotEmpty ? visibleExecutionTargets.first - : controller.assistantExecutionTarget); + : currentExecutionTarget); final permissionLevel = controller.assistantPermissionLevel; final selectedSkills = widget.availableSkills .where((skill) => widget.selectedSkillKeys.contains(skill.key)) diff --git a/lib/features/assistant/assistant_page_state_actions.dart b/lib/features/assistant/assistant_page_state_actions.dart index 89ff4003..c6afc342 100644 --- a/lib/features/assistant/assistant_page_state_actions.dart +++ b/lib/features/assistant/assistant_page_state_actions.dart @@ -674,13 +674,17 @@ extension AssistantPageStateActionsInternal on AssistantPageStateInternal { final visibleTargets = controller.visibleAssistantExecutionTargets( supportedTargets, ); - if (visibleTargets.contains(controller.currentAssistantExecutionTarget)) { - return controller.currentAssistantExecutionTarget; + final currentTarget = controller.currentAssistantExecutionTarget; + if (visibleTargets.contains(currentTarget)) { + return currentTarget; + } + if (currentTarget == AssistantExecutionTarget.auto) { + return currentTarget; } if (visibleTargets.isNotEmpty) { return visibleTargets.first; } - return controller.currentAssistantExecutionTarget; + return currentTarget; } void touchTaskSeedInternal({