feat(worker): planning finalize enters WaitingForChildren
A finalized planning parent now joins the unified parent lifecycle: WaitingForChildren while its child chain runs (or WaitingForReview directly if it has no children), advancing to review like an improvement parent. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -289,12 +289,16 @@ public sealed class TaskStateService : ITaskStateService
|
||||
public async Task<TransitionResult> FinalizePlanningAsync(string parentId, CancellationToken ct)
|
||||
{
|
||||
await using var ctx = await _dbFactory.CreateDbContextAsync(ct);
|
||||
var hasChildren = await ctx.Tasks.AnyAsync(t => t.ParentTaskId == parentId, ct);
|
||||
var newStatus = hasChildren ? TaskStatus.WaitingForChildren : TaskStatus.WaitingForReview;
|
||||
|
||||
var affected = await ctx.Tasks
|
||||
.Where(t => t.Id == parentId && t.PlanningPhase == PlanningPhase.Active)
|
||||
.ExecuteUpdateAsync(s => s
|
||||
.SetProperty(t => t.PlanningPhase, PlanningPhase.Finalized)
|
||||
.SetProperty(t => t.PlanningFinalizedAt, DateTime.UtcNow)
|
||||
.SetProperty(t => t.PlanningSessionToken, (string?)null), ct);
|
||||
.SetProperty(t => t.PlanningSessionToken, (string?)null)
|
||||
.SetProperty(t => t.Status, newStatus), ct);
|
||||
|
||||
if (affected == 0)
|
||||
return new TransitionResult(false, "No active planning session.");
|
||||
|
||||
Reference in New Issue
Block a user