feat(ui): details island with agent strip, terminal, subtasks, notes

Adds AgentStripView (status/model/turns/tokens row, worktree path,
branch line, action buttons), SessionTerminalView (scrollable log with
auto-scroll on CollectionChanged, prompt TextBox with Enter binding),
and replaces DetailsIslandView placeholder with full ScrollViewer layout
containing editable title, agent strip, terminal, subtasks, notes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
mika kuns
2026-04-20 10:23:04 +02:00
parent fcf53ab4f5
commit 4f41b084fa
5 changed files with 101 additions and 4 deletions

View File

@@ -1,8 +1,34 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:ClaudeDo.Ui.ViewModels.Islands"
xmlns:islands="using:ClaudeDo.Ui.Views.Islands"
x:Class="ClaudeDo.Ui.Views.Islands.DetailsIslandView"
x:DataType="vm:DetailsIslandViewModel">
<TextBlock Margin="14" Text="Details (placeholder)"
Foreground="{DynamicResource TextDimBrush}"/>
<ScrollViewer>
<StackPanel Margin="18,14" Spacing="14">
<!-- Editable title -->
<TextBox Text="{Binding EditableTitle, Mode=TwoWay}" FontSize="18"
BorderThickness="0" Background="Transparent"
Foreground="{DynamicResource TextBrush}"/>
<!-- Agent strip (only when a worktree exists or task is active) -->
<islands:AgentStripView/>
<!-- Session terminal: log + prompt -->
<islands:SessionTerminalView Height="260"/>
<!-- Subtasks -->
<ItemsControl ItemsSource="{Binding Subtasks}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="vm:SubtaskRowViewModel">
<StackPanel Orientation="Horizontal" Spacing="8" Margin="0,2">
<CheckBox IsChecked="{Binding Done, Mode=TwoWay}"/>
<TextBlock Text="{Binding Title}" VerticalAlignment="Center"
Foreground="{DynamicResource TextBrush}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!-- Notes -->
<TextBox Text="{Binding Notes, Mode=TwoWay}" AcceptsReturn="True"
TextWrapping="Wrap" MinHeight="80" PlaceholderText="Notes…"/>
</StackPanel>
</ScrollViewer>
</UserControl>