From 1fb2e34f85741a9398e81bdbbc9c64cecf933616 Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Fri, 19 Jun 2026 14:10:16 +0200 Subject: [PATCH] refactor(tasks): route UI quick-add through TaskRepository.AddAsync Drops the append-SortOrder query duplicated inline in TasksIslandViewModel.AddAsync; the repository (already used by MCP AddTask) is now the single home for the create+SortOrder invariant. Sets Status=Idle explicitly for parity. --- .../ViewModels/Islands/TasksIslandViewModel.cs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs index 1455bf0..0b877d3 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs @@ -408,20 +408,15 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable if (string.IsNullOrWhiteSpace(NewTaskTitle) || _currentList?.Kind != ListKind.User) return; var listId = _currentList.Id["user:".Length..]; await using var db = await _dbFactory.CreateDbContextAsync(); - var maxSort = await db.Tasks - .Where(t => t.ListId == listId) - .Select(t => (int?)t.SortOrder) - .MaxAsync(); var entity = new TaskEntity { Id = Guid.NewGuid().ToString("N"), ListId = listId, Title = NewTaskTitle.Trim(), + Status = TaskStatus.Idle, CreatedAt = DateTime.UtcNow, - SortOrder = (maxSort ?? -1) + 1, }; - db.Tasks.Add(entity); - await db.SaveChangesAsync(); + await new TaskRepository(db).AddAsync(entity); var row = TaskRowViewModel.FromEntity(entity); row.ShowListChip = _currentList?.Kind == ListKind.Virtual; Items.Add(row);