feat(ui): Review-Merge-Button — Claude nimmt Waiting-for-Review pro Liste ab

Neuer Button in der virtuellen Review-Liste: öffnet das Merge-Helper-Auswahlmodal
im Review-Modus (alle WaitingForReview-Tasks repo-verknüpfter Listen, gruppiert
unter Listen-Headern, alle vorgetickt) und startet pro gewählter Liste eine
ConPTY-Handler-Session direkt in der Merge-Phase — via bestehendem Handoff-Spec
(nextPhase "merge"), kein Triage/Wait davor. Handler-Host-Task wie beim vollen
"Let Claude handle it"-Lauf (HandlerBaseCommit, IsManual).
This commit is contained in:
mika kuns
2026-08-27 08:44:33 +02:00
parent d0c726baa0
commit 741c7ac58d
11 changed files with 293 additions and 8 deletions
@@ -39,6 +39,10 @@
Command="{Binding LetClaudeHandleCommand}" ToolTip.Tip="{loc:Tr tasks.letClaudeTip}">
<PathIcon Width="15" Height="15" Data="{StaticResource Icon.AgentSuggested}"/>
</Button>
<Button Classes="icon-btn" IsVisible="{Binding IsMergeReviewsVisible}"
Command="{Binding MergeReviewsCommand}" ToolTip.Tip="{loc:Tr tasks.mergeReviewsTip}">
<PathIcon Width="15" Height="15" Data="{StaticResource Icon.GitBranch}"/>
</Button>
<Button Classes="icon-btn" IsVisible="{Binding IsQuickClaudeVisible}"
Command="{Binding OpenQuickClaudeSessionCommand}" ToolTip.Tip="{loc:Tr tasks.quickClaudeTip}">
<PathIcon Width="15" Height="15" Data="{StaticResource Icon.ArrowOut}"/>
@@ -53,6 +53,10 @@
<ItemsControl.ItemTemplate>
<DataTemplate DataType="vm:MergeHelperTaskRowViewModel">
<Grid ColumnDefinitions="24,32,*,120" Margin="0,1">
<!-- Review mode: non-selectable list-name section header -->
<TextBlock Grid.Column="0" Grid.ColumnSpan="3" Classes="eyebrow"
Text="{Binding Title}" IsVisible="{Binding IsListHeader}"
Margin="0,10,0,2" VerticalAlignment="Center"/>
<!-- Indent track for children, matching the task list's parent/child rendering -->
<Border Grid.Column="0" Width="24" IsVisible="{Binding IsChild}" VerticalAlignment="Stretch">
<Rectangle Width="1" Fill="{DynamicResource LineBrush}"
@@ -60,8 +64,10 @@
</Border>
<CheckBox Grid.Column="1" MinWidth="0"
IsChecked="{Binding IsSelected, Mode=TwoWay}"
IsVisible="{Binding !IsListHeader}"
VerticalAlignment="Center"/>
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="4"
IsVisible="{Binding !IsListHeader}"
VerticalAlignment="Center">
<TextBlock Classes="body" Text="{Binding Title}"
VerticalAlignment="Center" Margin="4,0,0,0"
@@ -73,6 +79,7 @@
</Border>
</StackPanel>
<Border Grid.Column="3" Classes="chip"
IsVisible="{Binding !IsListHeader}"
HorizontalAlignment="Left" VerticalAlignment="Center">
<TextBlock Text="{Binding StatusText}"/>
</Border>