From 4585b20f805689ddcaf10a74fc13f8268e247f52 Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Wed, 22 Apr 2026 09:44:48 +0200 Subject: [PATCH] feat(ui): add MergeTaskAsync and GetMergeTargetsAsync to WorkerClient --- src/ClaudeDo.Ui/Services/WorkerClient.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ClaudeDo.Ui/Services/WorkerClient.cs b/src/ClaudeDo.Ui/Services/WorkerClient.cs index b302087..d2d5eec 100644 --- a/src/ClaudeDo.Ui/Services/WorkerClient.cs +++ b/src/ClaudeDo.Ui/Services/WorkerClient.cs @@ -179,6 +179,24 @@ public partial class WorkerClient : ObservableObject, IAsyncDisposable await _hub.InvokeAsync("ResetTask", taskId); } + public async Task MergeTaskAsync(string taskId, string targetBranch, bool removeWorktree, string commitMessage) + { + return await _hub.InvokeAsync( + "MergeTask", taskId, targetBranch, removeWorktree, commitMessage); + } + + public async Task GetMergeTargetsAsync(string taskId) + { + try + { + return await _hub.InvokeAsync("GetMergeTargets", taskId); + } + catch + { + return null; + } + } + public async Task CancelTaskAsync(string taskId) { await _hub.InvokeAsync("CancelTask", taskId); @@ -298,3 +316,5 @@ public sealed record AppSettingsDto( public sealed record WorktreeCleanupDto(int Removed); public sealed record WorktreeResetDto(int Removed, int TasksAffected, bool Blocked, int RunningTasks); +public record MergeResultDto(string Status, IReadOnlyList ConflictFiles, string? ErrorMessage); +public record MergeTargetsDto(string DefaultBranch, IReadOnlyList LocalBranches);