chore(claude-do): refactor(ui): DetailsIslandViewModel (1431 Zeilen) in Sektio

Kontext: src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs ist mit 1431 Zeilen ein God-VM mit ~12 Concerns (Log-Streaming, Titel/Description-Editing, Subtasks, Child-Outcomes, Merge-Preview/-Targets, Diff, Agent-Settings-Overrides, Notes-Mode, Prep-Mode, Tabs, Session-Outcome/Roadblocks, Worktree-Info). Jedes neue Feature landet dort.

Änderungen — drei klar abgrenzbare Sektionen als ei

ClaudeDo-Task: 483e419f-1ec8-46ba-986b-8b90d6596b49
This commit is contained in:
mika kuns
2026-06-10 00:31:09 +02:00
parent 74ca2e0dcd
commit e272053e72
12 changed files with 645 additions and 530 deletions

View File

@@ -67,7 +67,7 @@ public class DetailsIslandPrepModeTests : IDisposable
stub.RaisePrepLine("{\"type\":\"assistant\",\"message\":{\"content\":[{\"type\":\"text\",\"text\":\"hi\"}]}}");
Assert.NotEmpty(vm.PrepLog);
Assert.NotEmpty(vm.Prep.PrepLog);
}
[Fact]
@@ -88,9 +88,9 @@ public class DetailsIslandPrepModeTests : IDisposable
var vm = NewDetailsVm(stub);
vm.ShowPrep();
await vm.LoadLastPrepLogIfEmptyAsync();
await vm.Prep.LoadLastPrepLogIfEmptyAsync();
Assert.NotEmpty(vm.PrepLog);
Assert.NotEmpty(vm.Prep.PrepLog);
}
[Fact]
@@ -98,7 +98,7 @@ public class DetailsIslandPrepModeTests : IDisposable
{
var stub = new DefaultStub();
var vm = NewDetailsVm(stub);
await vm.PlanDayCommand.ExecuteAsync(null);
await vm.Prep.PlanDayCommand.ExecuteAsync(null);
Assert.Equal(1, stub.RunDailyPrepNowCalls);
}
@@ -106,6 +106,6 @@ public class DetailsIslandPrepModeTests : IDisposable
public void ShowPrepEmptyState_true_when_empty_and_not_running()
{
var vm = NewDetailsVm(new DefaultStub());
Assert.True(vm.ShowPrepEmptyState);
Assert.True(vm.Prep.ShowPrepEmptyState);
}
}