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
- task.packetTaskPath = task.taskFolder;
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskplane",
3
- "version": "0.24.8",
3
+ "version": "0.24.10",
4
4
  "description": "AI agent orchestration for pi — parallel task execution with checkpoint discipline",
5
5
  "keywords": [
6
6
  "pi-package",