diff --git a/src/ClaudeDo.Ui/Design/IslandStyles.axaml b/src/ClaudeDo.Ui/Design/IslandStyles.axaml index 70cffa2..2277a4e 100644 --- a/src/ClaudeDo.Ui/Design/IslandStyles.axaml +++ b/src/ClaudeDo.Ui/Design/IslandStyles.axaml @@ -88,6 +88,9 @@ F0 M12 3 L22 20 H2 Z M11 9 H13 V14 H11 Z M11 16 H13 V18 H11 Z + + M12 3 L20 12 L12 21 L4 12 Z + M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8z M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65a.5.5 0 0 0 .12-.64l-2-3.46a.5.5 0 0 0-.61-.22l-2.49 1a7.03 7.03 0 0 0-1.69-.98l-.38-2.65a.5.5 0 0 0-.5-.42h-4a.5.5 0 0 0-.5.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1a.5.5 0 0 0-.61.22l-2 3.46a.5.5 0 0 0 .12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65a.5.5 0 0 0-.12.64l2 3.46a.5.5 0 0 0 .61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65a.5.5 0 0 0 .5.42h4a.5.5 0 0 0 .5-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1a.5.5 0 0 0 .61-.22l2-3.46a.5.5 0 0 0-.12-.64l-2.11-1.65z diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs index b36fb6a..d1a212e 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs @@ -24,6 +24,7 @@ public sealed partial class TaskRowViewModel : ViewModelBase [ObservableProperty] private bool _dropHintAbove; [ObservableProperty] private bool _dropHintBelow; [ObservableProperty] private string? _parentTaskId; + [ObservableProperty] private string? _createdBy; [ObservableProperty] private string? _blockedByTaskId; [ObservableProperty] private bool _isExpanded = true; [ObservableProperty] private bool _hasPlanningChildren; @@ -38,7 +39,8 @@ public sealed partial class TaskRowViewModel : ViewModelBase public int StepsCount { get; init; } public int StepsCompleted { get; init; } - public bool IsChild => !string.IsNullOrEmpty(ParentTaskId); + public bool IsChild => !string.IsNullOrEmpty(ParentTaskId); + public bool IsAgentSuggested => IsChild && !string.IsNullOrEmpty(CreatedBy) && CreatedBy == ParentTaskId; public bool IsPlanningParent => PlanningPhase != PlanningPhase.None || HasPlanningChildren; // A subtask is Draft until its planning parent is finalized, then Planned (queueable). @@ -128,12 +130,15 @@ public sealed partial class TaskRowViewModel : ViewModelBase partial void OnParentTaskIdChanged(string? value) { OnPropertyChanged(nameof(IsChild)); + OnPropertyChanged(nameof(IsAgentSuggested)); OnPropertyChanged(nameof(IsDraft)); OnPropertyChanged(nameof(IsPlanned)); OnPropertyChanged(nameof(CanSendToQueue)); OnPropertyChanged(nameof(CanOpenPlanningSession)); } + partial void OnCreatedByChanged(string? value) => OnPropertyChanged(nameof(IsAgentSuggested)); + partial void OnParentFinalizedChanged(bool value) { OnPropertyChanged(nameof(IsDraft)); @@ -214,6 +219,7 @@ public sealed partial class TaskRowViewModel : ViewModelBase DiffAdditions = add; DiffDeletions = del; ParentTaskId = t.ParentTaskId; + CreatedBy = t.CreatedBy; BlockedByTaskId = t.BlockedByTaskId; RoadblockCount = t.RoadblockCount; } diff --git a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml index 9ddc3d2..b00e5a7 100644 --- a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml +++ b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml @@ -136,6 +136,13 @@ IsVisible="{Binding HasRoadblock}" ToolTip.Tip="{Binding RoadblockTooltip}"/> + + +