feat(ui): surface agent roadblocks and run outcome in the detail pane
- Parse CLAUDEDO_BLOCKED roadblocks out of the run result and show them in a colored card between Details and Output (ApplyOutcome / ShowRoadblockCard). - Show the run outcome summary as an OUTCOME card in the Output tab, loaded from the task result (falls back to the run's ErrorMarkdown) and refreshed on finish. - Guard the Session tab so it only appears when there are child outcomes. - Make console resize per-task and proportional (description capped at 2/3, console floored at ~1/3) so a long description no longer spills over the footer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -43,24 +43,55 @@
|
||||
IsVisible="{Binding IsTaskDetailVisible}"
|
||||
Margin="14,12,14,12">
|
||||
<Grid.RowDefinitions>
|
||||
<!-- MinHeight keeps the description visible: the console can never
|
||||
overlap it, whether maximized (code-behind) or dragged. -->
|
||||
<RowDefinition Height="2*" MinHeight="90"/>
|
||||
<!-- Auto: the description sizes to its content so the console takes
|
||||
every spare pixel when it's short. Row limits are proportional
|
||||
and set in code-behind (UpdateRowLimits): the description row is
|
||||
capped at 2/3 of the island and the console row floored at 1/3,
|
||||
so the console can be dragged down to (but not below) 1/3 and a
|
||||
long description never spills over the footer. -->
|
||||
<RowDefinition Height="Auto" MinHeight="90"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto">
|
||||
<detail:DescriptionStepsCard VerticalAlignment="Top"/>
|
||||
</ScrollViewer>
|
||||
<detail:WorkConsole Grid.Row="1" Margin="0,10,0,0"/>
|
||||
<detail:DescriptionStepsCard x:Name="DescriptionCard" Grid.Row="0"/>
|
||||
|
||||
<!-- Console row also hosts the roadblock card (docked above the console)
|
||||
so it surfaces at a glance between Details and Output. Keeping it
|
||||
inside row 1 leaves the desc/console resize model untouched. -->
|
||||
<DockPanel Grid.Row="1" Margin="0,10,0,0">
|
||||
<Border DockPanel.Dock="Top"
|
||||
IsVisible="{Binding ShowRoadblockCard}"
|
||||
Margin="0,0,0,10" Padding="12,10"
|
||||
Background="{DynamicResource ReviewTintBrush}"
|
||||
BorderBrush="{DynamicResource ReviewTintBorderBrush}"
|
||||
BorderThickness="1" CornerRadius="10">
|
||||
<StackPanel Spacing="6">
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<PathIcon Data="{StaticResource Icon.Warning}"
|
||||
Foreground="{DynamicResource StatusReviewBrush}"
|
||||
Width="14" Height="14" VerticalAlignment="Center"/>
|
||||
<TextBlock Classes="section-label" Text="ROADBLOCK"
|
||||
Foreground="{DynamicResource StatusReviewBrush}"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
<SelectableTextBlock Text="{Binding Roadblocks}"
|
||||
TextWrapping="Wrap"
|
||||
Foreground="{DynamicResource TextDimBrush}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<detail:WorkConsole/>
|
||||
</DockPanel>
|
||||
|
||||
<!-- Resize by dragging the console's top edge — a transparent splitter
|
||||
over the gap above the console; no standalone separator bar.
|
||||
Stays draggable while maximized. -->
|
||||
<GridSplitter Grid.Row="1"
|
||||
<GridSplitter x:Name="DetailSplitter" Grid.Row="1"
|
||||
VerticalAlignment="Top"
|
||||
Height="10"
|
||||
HorizontalAlignment="Stretch"
|
||||
ResizeDirection="Rows"
|
||||
Background="Transparent"/>
|
||||
Background="Transparent"
|
||||
DragStarted="OnSplitterDragStarted"
|
||||
DragCompleted="OnSplitterDragCompleted"/>
|
||||
</Grid>
|
||||
|
||||
<!-- Notes mode -->
|
||||
|
||||
Reference in New Issue
Block a user