From 00608401aa698a69d4fbce2eb7d1459dabf2429b Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 23 Apr 2026 18:41:04 +0200 Subject: [PATCH] feat(ui): WorkerClient planning-session methods --- src/ClaudeDo.Ui/Services/PlanningDtos.cs | 18 ++++++++++++++++++ src/ClaudeDo.Ui/Services/WorkerClient.cs | 15 +++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/ClaudeDo.Ui/Services/PlanningDtos.cs diff --git a/src/ClaudeDo.Ui/Services/PlanningDtos.cs b/src/ClaudeDo.Ui/Services/PlanningDtos.cs new file mode 100644 index 0000000..71a553e --- /dev/null +++ b/src/ClaudeDo.Ui/Services/PlanningDtos.cs @@ -0,0 +1,18 @@ +namespace ClaudeDo.Ui.Services; + +public sealed record PlanningSessionFilesDto( + string SessionDirectory, + string McpConfigPath, + string SystemPromptPath, + string InitialPromptPath); + +public sealed record PlanningSessionStartInfo( + string ParentTaskId, + string WorkingDir, + PlanningSessionFilesDto Files); + +public sealed record PlanningSessionResumeInfo( + string ParentTaskId, + string WorkingDir, + string ClaudeSessionId, + string McpConfigPath); diff --git a/src/ClaudeDo.Ui/Services/WorkerClient.cs b/src/ClaudeDo.Ui/Services/WorkerClient.cs index 0612c37..56775c3 100644 --- a/src/ClaudeDo.Ui/Services/WorkerClient.cs +++ b/src/ClaudeDo.Ui/Services/WorkerClient.cs @@ -347,6 +347,21 @@ public partial class WorkerClient : ObservableObject, IAsyncDisposable } } + public async Task StartPlanningSessionAsync(string taskId, CancellationToken ct = default) + => await _hub.InvokeAsync("StartPlanningSessionAsync", taskId, ct); + + public async Task ResumePlanningSessionAsync(string taskId, CancellationToken ct = default) + => await _hub.InvokeAsync("ResumePlanningSessionAsync", taskId, ct); + + public async Task DiscardPlanningSessionAsync(string taskId, CancellationToken ct = default) + => await _hub.InvokeAsync("DiscardPlanningSessionAsync", taskId, ct); + + public async Task FinalizePlanningSessionAsync(string taskId, bool queueAgentTasks = true, CancellationToken ct = default) + => await _hub.InvokeAsync("FinalizePlanningSessionAsync", taskId, queueAgentTasks, ct); + + public async Task GetPendingDraftCountAsync(string taskId, CancellationToken ct = default) + => await _hub.InvokeAsync("GetPendingDraftCountAsync", taskId, ct); + // DTOs for deserializing hub responses private sealed class ActiveTaskDto {