feat(worker): fast-forward finished children into the parent's unit branch

Planning parents get their own worktree on Queue plan, children fork from the
unit head and are absorbed via merge --ff-only before Done (ff failure -> Failed,
interactive child approve -> absorb instead of merge to the target).
This commit is contained in:
mika kuns
2026-10-01 11:25:47 +02:00
parent 724ad90f88
commit 9da522b0c9
8 changed files with 489 additions and 17 deletions
@@ -26,7 +26,8 @@ public static class TaskStateServiceBuilder
public static Built Build(
IDbContextFactory<ClaudeDoDbContext> dbFactory,
Func<IActiveMergeState>? mergeState = null,
BaseDirtyChecker? baseDirtyChecker = null)
BaseDirtyChecker? baseDirtyChecker = null,
ClaudeDo.Worker.Runner.UnitBranchService? unitBranch = null)
{
var hub = new CapturingHubContext();
var broadcaster = new HubBroadcaster(hub);
@@ -46,7 +47,7 @@ public static class TaskStateServiceBuilder
NullLogger<TicketStatusSync>.Instance);
TaskStateService? state = null;
var chain = new PlanningChainCoordinator(dbFactory, () => state!);
var chain = new PlanningChainCoordinator(dbFactory, () => state!, unitBranch);
state = new TaskStateService(
dbFactory,
broadcaster,