Merge claudedo/5d8e6246af9444afa500fbb4546873e7
This commit is contained in:
@@ -73,12 +73,25 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable
|
||||
[ObservableProperty] private bool _showNotesRow;
|
||||
[ObservableProperty] private bool _isMyDayList;
|
||||
[ObservableProperty] private bool _isLetClaudeVisible;
|
||||
[ObservableProperty] private bool _isQuickClaudeVisible;
|
||||
|
||||
public event EventHandler? LetClaudeHandleRequested;
|
||||
|
||||
[RelayCommand]
|
||||
private void LetClaudeHandle() => LetClaudeHandleRequested?.Invoke(this, EventArgs.Empty);
|
||||
|
||||
// Opens a task-less ConPTY session directly in the current list's working dir. The shell owns
|
||||
// Mission Control, so this just raises an event for it to act on (mirrors OpenConPtySessionRequested).
|
||||
public event Action<string>? OpenQuickClaudeSessionRequested;
|
||||
|
||||
[RelayCommand]
|
||||
private void OpenQuickClaudeSession()
|
||||
{
|
||||
var dir = _currentList?.WorkingDir;
|
||||
if (string.IsNullOrWhiteSpace(dir) || !System.IO.Directory.Exists(dir)) return;
|
||||
OpenQuickClaudeSessionRequested?.Invoke(dir);
|
||||
}
|
||||
|
||||
internal Task? LoadTask { get; private set; }
|
||||
|
||||
public Func<UnfinishedPlanningModalViewModel, Task>? ShowUnfinishedPlanningModal { get; set; }
|
||||
@@ -221,7 +234,10 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable
|
||||
if (e.PropertyName == nameof(ListNavItemViewModel.Name))
|
||||
HeaderTitle = vm.Name;
|
||||
else if (e.PropertyName == nameof(ListNavItemViewModel.WorkingDir))
|
||||
{
|
||||
IsLetClaudeVisible = vm.Kind == ListKind.User && !string.IsNullOrWhiteSpace(vm.WorkingDir);
|
||||
IsQuickClaudeVisible = IsLetClaudeVisible;
|
||||
}
|
||||
}
|
||||
|
||||
public void LoadForList(ListNavItemViewModel? list)
|
||||
@@ -259,13 +275,14 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable
|
||||
ShowOpenLabel = false;
|
||||
ShowNotesRow = false;
|
||||
if (listChanged) SelectedTask = null;
|
||||
if (list is null) { IsLetClaudeVisible = false; LoadTask = Task.CompletedTask; return; }
|
||||
if (list is null) { IsLetClaudeVisible = false; IsQuickClaudeVisible = false; LoadTask = Task.CompletedTask; return; }
|
||||
|
||||
HeaderTitle = list.Name;
|
||||
HeaderEyebrow = DateTime.Now.ToString("dddd · MMM dd", CultureInfo.InvariantCulture).ToUpperInvariant();
|
||||
ShowNotesRow = list.Id == "smart:my-day";
|
||||
IsMyDayList = list.Id == "smart:my-day";
|
||||
IsLetClaudeVisible = list.Kind == ListKind.User && !string.IsNullOrWhiteSpace(list.WorkingDir);
|
||||
IsQuickClaudeVisible = IsLetClaudeVisible;
|
||||
|
||||
LoadTask = LoadForListAsync(list, ct, reusable);
|
||||
}
|
||||
|
||||
@@ -242,6 +242,11 @@ public sealed partial class IslandsShellViewModel : ViewModelBase, IDisposable
|
||||
OpenMissionControl();
|
||||
_ = MissionControl.OpenConPtySessionAsync(taskId);
|
||||
};
|
||||
Tasks.OpenQuickClaudeSessionRequested += dir =>
|
||||
{
|
||||
OpenMissionControl();
|
||||
_ = MissionControl.OpenAdHocConPtySessionAsync(dir);
|
||||
};
|
||||
Tasks.OpenPlanningConPtyRequested += (taskId, resume) =>
|
||||
{
|
||||
OpenMissionControl();
|
||||
|
||||
Reference in New Issue
Block a user