diff --git a/src/ClaudeDo.Data/Wire.cs b/src/ClaudeDo.Data/Wire.cs index 456f0469..c387d9e0 100644 --- a/src/ClaudeDo.Data/Wire.cs +++ b/src/ClaudeDo.Data/Wire.cs @@ -72,7 +72,8 @@ public record WorktreeOverviewDto( WorktreeState State, string? DiffStat, DateTime CreatedAt, - bool PathExistsOnDisk); + bool PathExistsOnDisk, + int TaskNumber = 0); public record ForceRemoveResultDto(bool Removed, string? Reason); diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/WorktreesOverviewModalViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/WorktreesOverviewModalViewModel.cs index 04b25ada..bd22f38a 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/WorktreesOverviewModalViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/WorktreesOverviewModalViewModel.cs @@ -16,6 +16,7 @@ public enum BatchMergeOutcome { None, Merging, Merged, Conflict, Blocked, Verify public sealed partial class WorktreeOverviewRowViewModel : ViewModelBase { [ObservableProperty] private string _taskId = ""; + [ObservableProperty] private int _taskNumber; [ObservableProperty] private string _taskTitle = ""; [ObservableProperty][NotifyPropertyChangedFor(nameof(IsRunning))] private TaskStatus _taskStatus; [ObservableProperty] private string _listId = ""; @@ -49,6 +50,9 @@ public sealed partial class WorktreeOverviewRowViewModel : ViewModelBase public bool IsKept => State == WorktreeState.Kept; public bool IsRunning => TaskStatus == TaskStatus.Running; + // 0 = row without an allocated number (test seeds); a bare "#0" would be meaningless. + public bool ShowNumberBadge => TaskNumber > 0; + private static string FormatAge(TimeSpan ts) { if (ts.TotalDays >= 1) return $"{(int)ts.TotalDays}d ago"; @@ -366,7 +370,7 @@ public sealed partial class WorktreesOverviewModalViewModel : ViewModelBase private static WorktreeOverviewRowViewModel Map(WorktreeOverviewDto d) => new() { - TaskId = d.TaskId, TaskTitle = d.TaskTitle, TaskStatus = d.TaskStatus, + TaskId = d.TaskId, TaskNumber = d.TaskNumber, TaskTitle = d.TaskTitle, TaskStatus = d.TaskStatus, ListId = d.ListId, ListName = d.ListName, Path = d.Path, BranchName = d.BranchName, BaseCommit = d.BaseCommit, State = d.State, DiffStat = d.DiffStat, CreatedAt = d.CreatedAt, PathExistsOnDisk = d.PathExistsOnDisk, diff --git a/src/ClaudeDo.Ui/Views/Modals/WorktreesOverviewModalView.axaml b/src/ClaudeDo.Ui/Views/Modals/WorktreesOverviewModalView.axaml index 4e5f197f..98f708e7 100644 --- a/src/ClaudeDo.Ui/Views/Modals/WorktreesOverviewModalView.axaml +++ b/src/ClaudeDo.Ui/Views/Modals/WorktreesOverviewModalView.axaml @@ -58,13 +58,18 @@ CommandParameter="{Binding}"/> - + - + + + + - + @@ -146,8 +152,11 @@ - + + + +