diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs index f147261..3d4a5bc 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs @@ -37,6 +37,9 @@ public sealed partial class TaskRowViewModel : ViewModelBase public bool IsPlanningParent => Status == TaskStatus.Planning || Status == TaskStatus.Planned; public bool IsDraft => Status == TaskStatus.Draft; + public bool CanOpenPlanningSession => Status == TaskStatus.Manual && !IsChild; + public bool CanResumeOrDiscardPlanning => Status == TaskStatus.Planning; + public string? PlanningBadge => Status switch { TaskStatus.Planning => "PLANNING", @@ -76,9 +79,15 @@ public sealed partial class TaskRowViewModel : ViewModelBase OnPropertyChanged(nameof(IsPlanningParent)); OnPropertyChanged(nameof(PlanningBadge)); OnPropertyChanged(nameof(IsDraft)); + OnPropertyChanged(nameof(CanOpenPlanningSession)); + OnPropertyChanged(nameof(CanResumeOrDiscardPlanning)); } - partial void OnParentTaskIdChanged(string? value) => OnPropertyChanged(nameof(IsChild)); + partial void OnParentTaskIdChanged(string? value) + { + OnPropertyChanged(nameof(IsChild)); + OnPropertyChanged(nameof(CanOpenPlanningSession)); + } partial void OnBranchChanged(string? value) => OnPropertyChanged(nameof(HasBranch)); partial void OnLiveTailChanged(string? value) => OnPropertyChanged(nameof(HasLiveTail)); diff --git a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml index c823226..1e4bdb1 100644 --- a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml +++ b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml @@ -38,6 +38,19 @@ IsVisible="{Binding IsQueued}" Click="OnRemoveFromQueueClick"/> + + + +