feat(ui): surface WaitingForChildren status (chip, color, agent-strip, labels)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@ public class StatusColorConverter : IValueConverter
|
||||
"running" => Brushes.Orange,
|
||||
"waitingforreview" => Brushes.MediumPurple,
|
||||
"waiting_for_review" => Brushes.MediumPurple,
|
||||
"waitingforchildren" => Brushes.DarkOrange,
|
||||
"done" => Brushes.Green,
|
||||
"failed" => Brushes.Red,
|
||||
"manual" => Brushes.Gray,
|
||||
|
||||
@@ -174,6 +174,14 @@
|
||||
<Setter Property="Foreground" Value="{StaticResource StatusReviewBrush}" />
|
||||
</Style>
|
||||
|
||||
<Style Selector="Border.chip.children">
|
||||
<Setter Property="Background" Value="#332A1A" />
|
||||
<Setter Property="BorderBrush" Value="#4D3A1A" />
|
||||
</Style>
|
||||
<Style Selector="Border.chip.children > TextBlock">
|
||||
<Setter Property="Foreground" Value="#E0A030" />
|
||||
</Style>
|
||||
|
||||
<Style Selector="Border.chip.error">
|
||||
<Setter Property="Background" Value="{StaticResource ErrorTintBrush}" />
|
||||
<Setter Property="BorderBrush" Value="{StaticResource ErrorTintBorderBrush}" />
|
||||
@@ -388,6 +396,10 @@
|
||||
<Setter Property="Background" Value="{StaticResource ReviewTintBrush}" />
|
||||
<Setter Property="BorderBrush" Value="{StaticResource ReviewTintBorderBrush}" />
|
||||
</Style>
|
||||
<Style Selector="Border.agent-strip.children">
|
||||
<Setter Property="Background" Value="#332A1A" />
|
||||
<Setter Property="BorderBrush" Value="#4D3A1A" />
|
||||
</Style>
|
||||
<Style Selector="Border.agent-strip.error">
|
||||
<Setter Property="Background" Value="{StaticResource ErrorTintBrush}" />
|
||||
<Setter Property="BorderBrush" Value="{StaticResource ErrorTintBorderBrush}" />
|
||||
|
||||
@@ -110,11 +110,12 @@ public sealed partial class DetailsIslandViewModel : ViewModelBase
|
||||
[NotifyCanExecuteChangedFor(nameof(ContinueCommand))]
|
||||
private string _agentState = "idle";
|
||||
public string AgentStatusLabel => Loc.T($"vm.agentStatus.{AgentState}");
|
||||
public bool IsIdle => AgentState == "idle";
|
||||
public bool IsQueued => AgentState == "queued";
|
||||
public bool IsRunning => AgentState == "running";
|
||||
public bool IsWaitingForReview => AgentState == "review";
|
||||
public bool IsDone => AgentState == "done";
|
||||
public bool IsIdle => AgentState == "idle";
|
||||
public bool IsQueued => AgentState == "queued";
|
||||
public bool IsRunning => AgentState == "running";
|
||||
public bool IsWaitingForReview => AgentState == "review";
|
||||
public bool IsWaitingForChildren => AgentState == "children";
|
||||
public bool IsDone => AgentState == "done";
|
||||
public bool IsFailed => AgentState == "failed";
|
||||
public bool IsCancelled => AgentState == "cancelled";
|
||||
|
||||
@@ -134,6 +135,7 @@ public sealed partial class DetailsIslandViewModel : ViewModelBase
|
||||
OnPropertyChanged(nameof(IsQueued));
|
||||
OnPropertyChanged(nameof(IsRunning));
|
||||
OnPropertyChanged(nameof(IsWaitingForReview));
|
||||
OnPropertyChanged(nameof(IsWaitingForChildren));
|
||||
OnPropertyChanged(nameof(IsDone));
|
||||
OnPropertyChanged(nameof(IsFailed));
|
||||
OnPropertyChanged(nameof(IsCancelled));
|
||||
@@ -281,7 +283,8 @@ public sealed partial class DetailsIslandViewModel : ViewModelBase
|
||||
{
|
||||
ClaudeDo.Data.Models.TaskStatus.Queued => "queued",
|
||||
ClaudeDo.Data.Models.TaskStatus.Running => "running",
|
||||
ClaudeDo.Data.Models.TaskStatus.WaitingForReview => "review",
|
||||
ClaudeDo.Data.Models.TaskStatus.WaitingForReview => "review",
|
||||
ClaudeDo.Data.Models.TaskStatus.WaitingForChildren => "children",
|
||||
ClaudeDo.Data.Models.TaskStatus.Done => "done",
|
||||
ClaudeDo.Data.Models.TaskStatus.Failed => "failed",
|
||||
ClaudeDo.Data.Models.TaskStatus.Cancelled => "cancelled",
|
||||
@@ -293,7 +296,8 @@ public sealed partial class DetailsIslandViewModel : ViewModelBase
|
||||
"done" => "done",
|
||||
"failed" => "failed",
|
||||
"cancelled" => "cancelled",
|
||||
"waiting_for_review" => "review",
|
||||
"waiting_for_review" => "review",
|
||||
"waiting_for_children" => "children",
|
||||
_ => status.ToLowerInvariant(),
|
||||
};
|
||||
|
||||
|
||||
@@ -90,7 +90,8 @@ public sealed partial class TaskRowViewModel : ViewModelBase
|
||||
TaskStatus.Idle => Loc.T("vm.taskStatus.idle"),
|
||||
TaskStatus.Queued => Loc.T("vm.taskStatus.queued"),
|
||||
TaskStatus.Running => Loc.T("vm.taskStatus.running"),
|
||||
TaskStatus.WaitingForReview => Loc.T("vm.taskStatus.waitingForReview"),
|
||||
TaskStatus.WaitingForReview => Loc.T("vm.taskStatus.waitingForReview"),
|
||||
TaskStatus.WaitingForChildren => Loc.T("vm.taskStatus.waitingForChildren"),
|
||||
TaskStatus.Done => Loc.T("vm.taskStatus.done"),
|
||||
TaskStatus.Failed => Loc.T("vm.taskStatus.failed"),
|
||||
TaskStatus.Cancelled => Loc.T("vm.taskStatus.cancelled"),
|
||||
@@ -99,8 +100,9 @@ public sealed partial class TaskRowViewModel : ViewModelBase
|
||||
|
||||
public string StatusChipClass => (Status, IsBlocked: !string.IsNullOrEmpty(BlockedByTaskId)) switch
|
||||
{
|
||||
(TaskStatus.Running, _) => "running",
|
||||
(TaskStatus.WaitingForReview, _) => "review",
|
||||
(TaskStatus.Running, _) => "running",
|
||||
(TaskStatus.WaitingForReview, _) => "review",
|
||||
(TaskStatus.WaitingForChildren, _) => "children",
|
||||
(TaskStatus.Failed, _) => "error",
|
||||
(TaskStatus.Done, _) => "done",
|
||||
(TaskStatus.Queued, true) => "waiting",
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
x:DataType="vm:DetailsIslandViewModel">
|
||||
<Border Classes="agent-strip"
|
||||
Classes.running="{Binding IsRunning}"
|
||||
Classes.children="{Binding IsWaitingForChildren}"
|
||||
Margin="18,8,18,0">
|
||||
<StackPanel Margin="12,10" Spacing="6">
|
||||
|
||||
|
||||
@@ -140,6 +140,7 @@
|
||||
<Border Classes="chip"
|
||||
Classes.running="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=Running}"
|
||||
Classes.review="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=WaitingForReview}"
|
||||
Classes.children="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=WaitingForChildren}"
|
||||
Classes.done="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=Done}"
|
||||
Classes.error="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=Failed}"
|
||||
Classes.queued="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=Queued}">
|
||||
|
||||
Reference in New Issue
Block a user