feat(ui): spinners for ConPTY session start and task refine

Both actions previously gave no feedback: opening a ConPTY session only created
the tile after the launch-spec roundtrip (which may build a worktree), and the
refine button just disappeared while the run was in flight.

Add a shared Ellipse.spinner style, and let ConPtyPaneViewModel resolve its own
launch spec so the tile shows up immediately with a starting overlay. A failed
launch now keeps the tile with its inline error banner instead of never
appearing — Start() is separated from the ctor so the host can subscribe to
ErrorReported before the launch begins.
This commit is contained in:
Mika Kuns
2026-07-27 15:02:51 +02:00
parent 6c8de4aef3
commit 1466d0fbab
9 changed files with 150 additions and 90 deletions
+19
View File
@@ -454,6 +454,25 @@
</Style.Animations>
</Style>
<!-- Indeterminate ring spinner (dashed ring, rotated forever) -->
<Style Selector="Ellipse.spinner">
<Setter Property="Width" Value="14" />
<Setter Property="Height" Value="14" />
<Setter Property="Stroke" Value="{StaticResource AccentBrush}" />
<Setter Property="StrokeThickness" Value="2" />
<Setter Property="StrokeDashArray" Value="3,2" />
<Setter Property="RenderTransform" Value="rotate(0deg)" />
<Style.Animations>
<Animation Duration="0:0:0.9" IterationCount="INFINITE" Easing="LinearEasing">
<KeyFrame Cue="0%"> <Setter Property="RotateTransform.Angle" Value="0" /> </KeyFrame>
<KeyFrame Cue="100%"><Setter Property="RotateTransform.Angle" Value="360" /></KeyFrame>
</Animation>
</Style.Animations>
</Style>
<Style Selector="Ellipse.spinner.dim">
<Setter Property="Stroke" Value="{StaticResource TextDimBrush}" />
</Style>
<!-- ============================================================ -->
<!-- AGENT STRIP -->
<!-- ============================================================ -->