feat/planning-sessions-worker #7

Merged
mikakuns merged 15 commits from feat/planning-sessions-worker into main 2026-04-24 06:02:50 +00:00
2 changed files with 21 additions and 0 deletions
Showing only changes of commit d28164caf4 - Show all commits

View File

@@ -56,6 +56,12 @@ public sealed class PlanningSessionManager
public Task<int> FinalizeAsync(string taskId, bool queueAgentTasks, CancellationToken ct) public Task<int> FinalizeAsync(string taskId, bool queueAgentTasks, CancellationToken ct)
=> _tasks.FinalizePlanningAsync(taskId, queueAgentTasks, ct); => _tasks.FinalizePlanningAsync(taskId, queueAgentTasks, ct);
public async Task<int> GetPendingDraftCountAsync(string taskId, CancellationToken ct)
{
var children = await _tasks.GetChildrenAsync(taskId, ct);
return children.Count(c => c.Status == TaskStatus.Draft);
}
public async Task DiscardAsync(string taskId, CancellationToken ct) public async Task DiscardAsync(string taskId, CancellationToken ct)
{ {
var ok = await _tasks.DiscardPlanningAsync(taskId, ct); var ok = await _tasks.DiscardPlanningAsync(taskId, ct);

View File

@@ -176,6 +176,21 @@ public sealed class PlanningSessionManagerTests : IDisposable
Assert.Equal(TaskStatus.Planned, loaded!.Status); Assert.Equal(TaskStatus.Planned, loaded!.Status);
} }
[Fact]
public async Task GetPendingDraftCountAsync_ReturnsDraftCount()
{
var (listId, _) = await SeedListAsync();
var parent = await SeedManualTaskAsync(listId);
await _sut.StartAsync(parent.Id, CancellationToken.None);
await _tasks.CreateChildAsync(parent.Id, "c1", null, null, null);
await _tasks.CreateChildAsync(parent.Id, "c2", null, null, null);
await _tasks.CreateChildAsync(parent.Id, "c3", null, null, null);
var n = await _sut.GetPendingDraftCountAsync(parent.Id, CancellationToken.None);
Assert.Equal(3, n);
}
[Fact] [Fact]
public async Task DiscardAsync_DeletesSessionDirAndResetsTask() public async Task DiscardAsync_DeletesSessionDirAndResetsTask()
{ {