fix(ui): unfreeze the operation spinner and attribute rebind churn
Three causes behind the stuck indicator: - OperationStatus.End did not retire the generation, so tick work posted while the dispatcher was blocked drained afterwards and set ShowIndicator back to true on a finished operation. - The startup update check ran in Task.Run; OperationStatus writes its observable properties on the calling thread, so the final ShowIndicator=false never reached the binding. - OperationIndicator overwrote its own DataContext from the Status property, which re-targeted the call-site binding. It now scopes the DataContext to an inner panel and collapses itself when Status is null; every call site switched from DataContext= to Status=. Also gates the footer connection pill in the command body instead of CanExecute (a disabled command greyed out the ONLINE chip), and extends OperationTiming: pid per line, 4 MB rollover, fast successes dropped (failures always kept), and DetailsIsland.BindAsync now carries the selection trigger via TasksIslandViewModel.SelectFrom.
This commit is contained in:
@@ -281,7 +281,7 @@
|
||||
<Button Classes="btn" Content="{loc:Tr settings.files.restoreDefaultAgents}"
|
||||
Command="{Binding Files.RestoreDefaultAgentsCommand}"
|
||||
HorizontalAlignment="Left"/>
|
||||
<ctl:OperationIndicator DataContext="{Binding Files.RestoreOp}"/>
|
||||
<ctl:OperationIndicator Status="{Binding Files.RestoreOp}"/>
|
||||
</StackPanel>
|
||||
<StackPanel Spacing="6">
|
||||
<TextBlock Classes="section-label" Text="{loc:Tr settings.files.promptsSection}"/>
|
||||
@@ -504,14 +504,14 @@
|
||||
<Button Grid.Column="1" Classes="btn" Content="{loc:Tr settings.skills.installButton}"
|
||||
Command="{Binding SessionSkills.InstallCommand}"/>
|
||||
</Grid>
|
||||
<ctl:OperationIndicator DataContext="{Binding SessionSkills.InstallOp}"/>
|
||||
<ctl:OperationIndicator Status="{Binding SessionSkills.InstallOp}"/>
|
||||
</StackPanel>
|
||||
|
||||
<Border BorderBrush="{DynamicResource LineBrush}" BorderThickness="0,1,0,0" Margin="0,2,0,0"/>
|
||||
|
||||
<StackPanel Spacing="6">
|
||||
<TextBlock Classes="section-label" Text="{loc:Tr settings.skills.installedSection}"/>
|
||||
<ctl:OperationIndicator DataContext="{Binding SessionSkills.UpdateOp}"/>
|
||||
<ctl:OperationIndicator Status="{Binding SessionSkills.UpdateOp}"/>
|
||||
<ItemsControl ItemsSource="{Binding SessionSkills.Skills}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate x:DataType="services:SessionSkillDto">
|
||||
|
||||
Reference in New Issue
Block a user