diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs index c604eed9..bff9fef9 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs @@ -1173,7 +1173,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable TasksChanged?.Invoke(this, EventArgs.Empty); } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task ToggleDoneAsync(TaskRowViewModel row) { if (_worker is null) return; @@ -1237,7 +1237,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable TasksChanged?.Invoke(this, EventArgs.Empty); } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task ToggleStarAsync(TaskRowViewModel row) { row.IsStarred = !row.IsStarred; @@ -1403,7 +1403,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable catch (Exception ex) { ErrorReported?.Invoke(Loc.T("vm.tasksIsland.sendToQueueFailed", ex.Message)); } } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task RemoveFromQueueAsync(TaskRowViewModel? row) { if (row is null || _worker is null) return; @@ -1700,7 +1700,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable Regroup(); } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task RefineTask(TaskRowViewModel row) { if (row is null || !row.CanRefine) return;