Preserve auto execution targets in assistant UI

This commit is contained in:
Haitao Pan 2026-04-06 16:52:22 +08:00
parent 63fa64417d
commit d01358d0e6
2 changed files with 13 additions and 6 deletions

View File

@ -358,13 +358,16 @@ class ComposerBarStateInternal extends State<ComposerBarInternal> {
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))

View File

@ -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({