taskplane 0.24.8 → 0.24.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -384,6 +384,7 @@ export function buildSegmentFrontierWaves(
|
|
|
384
384
|
pending: Map<string, ParsedTask>,
|
|
385
385
|
segmentPlans?: TaskSegmentPlanMap,
|
|
386
386
|
packetRepoId?: string,
|
|
387
|
+
workspaceRoot?: string,
|
|
387
388
|
): { waves: string[][]; taskStateById: Map<string, SegmentFrontierTaskState> } {
|
|
388
389
|
const taskStateById = new Map<string, SegmentFrontierTaskState>();
|
|
389
390
|
|
|
@@ -395,7 +396,12 @@ export function buildSegmentFrontierWaves(
|
|
|
395
396
|
task.activeSegmentId = null;
|
|
396
397
|
if (packetRepoId) {
|
|
397
398
|
task.packetRepoId = packetRepoId;
|
|
398
|
-
|
|
399
|
+
// Resolve packetTaskPath to absolute so it works from any repo's worktree.
|
|
400
|
+
// task.taskFolder is relative to workspace root (e.g., "shared-libs/task-management/.../TP-004").
|
|
401
|
+
// When a segment executes in a different repo, the lane worktree won't contain this path.
|
|
402
|
+
task.packetTaskPath = workspaceRoot
|
|
403
|
+
? resolve(workspaceRoot, task.taskFolder)
|
|
404
|
+
: task.taskFolder;
|
|
399
405
|
}
|
|
400
406
|
|
|
401
407
|
taskStateById.set(taskId, {
|
|
@@ -1421,6 +1427,7 @@ export async function executeOrchBatch(
|
|
|
1421
1427
|
discovery.pending,
|
|
1422
1428
|
waveComputation.segmentPlans,
|
|
1423
1429
|
packetRepoId,
|
|
1430
|
+
stateRoot,
|
|
1424
1431
|
);
|
|
1425
1432
|
const rawWaves = frontier.waves;
|
|
1426
1433
|
segmentStateByTask = frontier.taskStateById;
|
|
@@ -567,6 +567,20 @@ export function resolveBaseBranch(
|
|
|
567
567
|
batchBaseBranch: string,
|
|
568
568
|
workspaceConfig?: WorkspaceConfig | null,
|
|
569
569
|
): string {
|
|
570
|
+
// Step 0: If the batch base branch is an orch branch (wave 2+), check if
|
|
571
|
+
// it exists in this repo. The orch branch has merged work from previous
|
|
572
|
+
// waves — worktrees MUST branch from it so workers see prior wave output.
|
|
573
|
+
// Without this, wave 2 worktrees branch from the repo's HEAD (e.g. develop)
|
|
574
|
+
// which lacks wave 1's code, causing dependency satisfaction failures.
|
|
575
|
+
if (batchBaseBranch.startsWith("orch/") && repoId) {
|
|
576
|
+
try {
|
|
577
|
+
const check = runGit(["rev-parse", "--verify", `refs/heads/${batchBaseBranch}`], repoRoot);
|
|
578
|
+
if (check.status === 0) {
|
|
579
|
+
return batchBaseBranch;
|
|
580
|
+
}
|
|
581
|
+
} catch { /* orch branch doesn't exist in this repo — fall through */ }
|
|
582
|
+
}
|
|
583
|
+
|
|
570
584
|
// Step 1: Detect current branch of this specific repo.
|
|
571
585
|
// This is the branch the developer is working on — worktrees should
|
|
572
586
|
// branch from here so task files committed on this branch are visible.
|