From e7d595244e0f2059ff355a1a12241290a562b20b Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 23 Apr 2026 19:46:39 +0200 Subject: [PATCH 1/2] fix(ui): Planned status uses blue badge style Previously both Planning and Planned rendered the same amber badge because a single was used. Split into two borders gated by IsPlanning / IsPlanned so Planned picks up the blue badge.planned style. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs | 4 ++++ src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs index 3d4a5bc..8632cb9 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs @@ -35,6 +35,8 @@ public sealed partial class TaskRowViewModel : ViewModelBase public bool IsChild => !string.IsNullOrEmpty(ParentTaskId); public bool IsPlanningParent => Status == TaskStatus.Planning || Status == TaskStatus.Planned; + public bool IsPlanning => Status == TaskStatus.Planning; + public bool IsPlanned => Status == TaskStatus.Planned; public bool IsDraft => Status == TaskStatus.Draft; public bool CanOpenPlanningSession => Status == TaskStatus.Manual && !IsChild; @@ -77,6 +79,8 @@ public sealed partial class TaskRowViewModel : ViewModelBase OnPropertyChanged(nameof(IsQueued)); OnPropertyChanged(nameof(HasLiveTail)); OnPropertyChanged(nameof(IsPlanningParent)); + OnPropertyChanged(nameof(IsPlanning)); + OnPropertyChanged(nameof(IsPlanned)); OnPropertyChanged(nameof(PlanningBadge)); OnPropertyChanged(nameof(IsDraft)); OnPropertyChanged(nameof(CanOpenPlanningSession)); diff --git a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml index 1e4bdb1..01c9800 100644 --- a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml +++ b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml @@ -99,8 +99,11 @@ - - + + + + + -- 2.49.1 From 09b52140ce44a0f633f37b310371443508204e7d Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 23 Apr 2026 19:46:52 +0200 Subject: [PATCH 2/2] refactor(ui): remove unused Instance statics on bool converters App.axaml registers these converters via the resource dictionary; the static Instance members were never referenced. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs | 2 -- src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs b/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs index e2d8d04..3c582d7 100644 --- a/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs +++ b/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs @@ -6,8 +6,6 @@ namespace ClaudeDo.Ui.Converters; public sealed class BoolToDraftOpacityConverter : IValueConverter { - public static BoolToDraftOpacityConverter Instance { get; } = new(); - public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is true ? 0.7 : 1.0; public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) diff --git a/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs b/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs index 0017101..558c03f 100644 --- a/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs +++ b/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs @@ -7,8 +7,6 @@ namespace ClaudeDo.Ui.Converters; public sealed class BoolToItalicConverter : IValueConverter { - public static BoolToItalicConverter Instance { get; } = new(); - public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is true ? FontStyle.Italic : FontStyle.Normal; public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) -- 2.49.1