feat(worker): add generic OperationProgress channel, port MergeProgress onto it

Merge/verify phases now broadcast over a generic (opKey, phase, current,
total) Hub event instead of a merge-specific one, so future producers
(worktree cleanup, startup recovery, planning integration) can reuse it.
IWorkerClient.MergeProgressEvent stays as a thin forwarder for existing
consumers (elapsed seconds riding in the generic "current" slot).
This commit is contained in:
Mika Kuns
2026-08-13 08:31:23 +02:00
parent db32e5307f
commit b8caa27027
8 changed files with 39 additions and 17 deletions
@@ -335,9 +335,9 @@ public class TaskMergeServiceTests : IDisposable
commitMessage: "", ct: CancellationToken.None);
Assert.Equal("merged", result.Status);
Assert.Contains(proxy.Calls, c => c.Method == "MergeProgress"
Assert.Contains(proxy.Calls, c => c.Method == "OperationProgress"
&& (string?)c.Args[0] == task.Id && (string?)c.Args[1] == TaskMergeService.PhaseMerging);
Assert.Contains(proxy.Calls, c => c.Method == "MergeProgress"
Assert.Contains(proxy.Calls, c => c.Method == "OperationProgress"
&& (string?)c.Args[0] == task.Id && (string?)c.Args[1] == TaskMergeService.PhaseVerifying);
Assert.Contains(proxy.Calls, c => c.Method == "WorkerLog"
&& c.Args[0] is string s && s.Contains("Verify command running"));