feat(ui): Interactive chip for tasks with an open ConPTY session
A task driven by hand in Mission Control is Idle with an Active worktree, so its lifecycle chip read "Parked" — indistinguishable from a task genuinely set aside. The shell now mirrors Mission Control's open panes onto the rows, which show an accent "Interactive" chip instead; tapping it surfaces Mission Control and focuses that pane (the open command already dedupes by task id).
This commit is contained in:
@@ -154,9 +154,13 @@
|
||||
IsVisible="{Binding IsAgentSuggested}"
|
||||
ToolTip.Tip="{loc:Tr tasks.agentSuggestedTip}"/>
|
||||
|
||||
<!-- Status chip -->
|
||||
<!-- Status chip. When a ConPTY session is open it reads "Interactive" and is tappable —
|
||||
it jumps to that pane in Mission Control. -->
|
||||
<Border Classes="chip"
|
||||
IsVisible="{Binding ShowStatusChip}"
|
||||
Tapped="OnStatusChipTapped"
|
||||
ToolTip.Tip="{Binding InteractiveChipTooltip}"
|
||||
Classes.interactive="{Binding HasInteractiveSession}"
|
||||
Classes.parked="{Binding IsParked}"
|
||||
Classes.running="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=Running}"
|
||||
Classes.review="{Binding Status, Converter={StaticResource EqStatus}, ConverterParameter=WaitingForReview}"
|
||||
|
||||
@@ -67,6 +67,15 @@ public partial class TaskRowView : UserControl
|
||||
vm.OpenConPtySessionCommand.Execute(row);
|
||||
}
|
||||
|
||||
// The status chip is only actionable while a ConPTY session is open; the open command dedupes
|
||||
// by task id, so it surfaces Mission Control and focuses the existing pane.
|
||||
private void OnStatusChipTapped(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (DataContext is not TaskRowViewModel { HasInteractiveSession: true } row) return;
|
||||
if (FindTasksVm() is { } vm)
|
||||
vm.OpenConPtySessionCommand.Execute(row);
|
||||
}
|
||||
|
||||
private async void OnPickUpInTerminalClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (DataContext is TaskRowViewModel row && FindTasksVm() is { } vm)
|
||||
|
||||
Reference in New Issue
Block a user