feat(ui): add merge-target dropdown and merge-all controls to planning detail

- Add SubtaskDiffDto and CombinedDiffResultDto to PlanningDtos.cs
- Extend IWorkerClient with 5 planning merge methods and 5 events
- Implement methods and hub subscriptions on WorkerClient
- Add Status and WorktreeState to SubtaskRowViewModel
- Add MergeTargetBranches, SelectedMergeTarget, CanMergeAll,
  MergeAllDisabledReason, MergeAllError, RecomputeCanMergeAll,
  MergeAllCommand, ReviewCombinedDiffCommand (Task 14 TODO)
  to DetailsIslandViewModel
- Add planning merge section to DetailsIslandView.axaml
  (merge target ComboBox + buttons + error label), gated on
  Task.IsPlanningParent
- Add 4 xUnit tests covering CanMergeAll logic and DTO shape

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mika kuns
2026-04-24 16:22:27 +02:00
parent 2cab33d708
commit 4c6fd9f024
6 changed files with 409 additions and 0 deletions

View File

@@ -16,3 +16,19 @@ public sealed record PlanningSessionResumeInfo(
string WorkingDir,
string ClaudeSessionId,
string McpConfigPath);
public sealed record SubtaskDiffDto(
string SubtaskId,
string Title,
string BranchName,
string BaseCommit,
string HeadCommit,
string? DiffStat,
string UnifiedDiff);
public sealed record CombinedDiffResultDto(
bool Success,
string? IntegrationBranch,
string? UnifiedDiff,
string? FirstConflictSubtaskId,
IReadOnlyList<string>? ConflictedFiles);