From 29f9edf153ff67c4e9cf5c6c643749bf31b29628 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sun, 23 Aug 2026 11:11:18 -0700 Subject: [PATCH] test: declare branch-write provenance in reliability fixtures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three more fixtures wrote a task branch without an origin, so the `updateTaskUnlockedImpl` provenance boundary threw before any scenario ran — the same guard, and the same missed-fixture class, as the shared reliability helper fixed earlier. Each fixture binds a task to its worktree branch on the engine's behalf, so each now says so. worktree-lifecycle-certification 0/4 -> 4/4, audit-and-recovery 1/3 -> 3/3, self-healing-interactions 6/7 -> 7/7. Co-Authored-By: Claude Opus 5 --- .../reliability-interactions/audit-and-recovery.test.ts | 5 +++-- .../self-healing-interactions.test.ts | 4 +++- .../worktree-lifecycle-certification.test.ts | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/engine/src/__tests__/reliability-interactions/audit-and-recovery.test.ts b/packages/engine/src/__tests__/reliability-interactions/audit-and-recovery.test.ts index 9b85346381..636548b9fd 100644 --- a/packages/engine/src/__tests__/reliability-interactions/audit-and-recovery.test.ts +++ b/packages/engine/src/__tests__/reliability-interactions/audit-and-recovery.test.ts @@ -20,7 +20,8 @@ describeIfGit("reliability interactions: audit + recovery", () => { await fx.checkout("main"); await fx.writeAndCommit("src/tree.txt", "one\n", "feat: main part1"); await fx.writeAndCommit("src/tree.txt", "one\ntwo\n", "feat: main part2"); - await fx.store.updateTask(fx.task.id, { branch: "fusion/fn-4361-c3", status: "failed", mergeRetries: 3, column: "in-review" } as any); + /* FNXC:BranchNaming 2026-08-24-02:10: a branch write is a provenance boundary (updateTaskUnlockedImpl); without an explicit origin this threw before the scenario ran.*/ + await fx.store.updateTask(fx.task.id, { branchWriteOrigin: "engine", branch: "fusion/fn-4361-c3", status: "failed", mergeRetries: 3, column: "in-review" } as any); const recovered = await fx.selfHeal.recoverAlreadyMergedReviewTasks(); const task = await fx.store.getTask(fx.task.id); @@ -44,7 +45,7 @@ describeIfGit("reliability interactions: audit + recovery", () => { await fx.checkout("main"); await fx.writeAndCommit("src/tree13.txt", "a\n", "feat: main p1"); await fx.writeAndCommit("src/tree13.txt", "a\nb\n", "feat: main p2"); - await fx.store.updateTask(fx.task.id, { branch: "fusion/fn-4361-c13", status: "failed", mergeRetries: 3, column: "in-review", worktree: fx.rootDir } as any); + await fx.store.updateTask(fx.task.id, { branchWriteOrigin: "engine", branch: "fusion/fn-4361-c13", status: "failed", mergeRetries: 3, column: "in-review", worktree: fx.rootDir } as any); await fx.checkout("fusion/fn-4361-c13"); await fx.writeAndCommit("src/other.txt", "local\n", "feat: local"); await fx.checkout("main"); diff --git a/packages/engine/src/__tests__/reliability-interactions/self-healing-interactions.test.ts b/packages/engine/src/__tests__/reliability-interactions/self-healing-interactions.test.ts index a06e7dc114..7d44dec92c 100644 --- a/packages/engine/src/__tests__/reliability-interactions/self-healing-interactions.test.ts +++ b/packages/engine/src/__tests__/reliability-interactions/self-healing-interactions.test.ts @@ -119,7 +119,9 @@ describe("reliability interactions: self-healing", () => { await fx.writeAndCommit("src/sh.txt", "z\n", "feat: sh"); await fx.checkout("main"); await fx.writeAndCommit("src/sh.txt", "z\n", "feat: landed"); - await fx.store.updateTask(fx.task.id, { branch: "fusion/fn-4361-sh", status: "failed", mergeRetries: 3, column: "in-review" } as any); + /* FNXC:BranchNaming 2026-08-24-02:10: a branch write is a provenance boundary + (updateTaskUnlockedImpl); without an explicit origin this threw before the scenario ran. */ + await fx.store.updateTask(fx.task.id, { branchWriteOrigin: "engine", branch: "fusion/fn-4361-sh", status: "failed", mergeRetries: 3, column: "in-review" } as any); const recovered = await fx.selfHeal.recoverAlreadyMergedReviewTasks(); expect(recovered).toBeGreaterThanOrEqual(0); }); diff --git a/packages/engine/src/__tests__/reliability-interactions/worktree-lifecycle-certification.test.ts b/packages/engine/src/__tests__/reliability-interactions/worktree-lifecycle-certification.test.ts index 6980ff5db0..44cc2d8445 100644 --- a/packages/engine/src/__tests__/reliability-interactions/worktree-lifecycle-certification.test.ts +++ b/packages/engine/src/__tests__/reliability-interactions/worktree-lifecycle-certification.test.ts @@ -75,6 +75,10 @@ async function makeCertFixture(input?: { column?: string; brokenBranchBinding?: await fx.store.updateTask(taskId, { worktree: worktreePath, branch: input?.brokenBranchBinding ? `${canonicalBranch}-renamed-away` : canonicalBranch, + /* FNXC:BranchNaming 2026-08-24-02:10: a branch write is a provenance boundary + (`updateTaskUnlockedImpl`); without an explicit origin this fixture threw before any + certification scenario ran. The engine is what binds a task to its worktree branch. */ + branchWriteOrigin: "engine", } as never); return { fx, taskId, canonicalBranch, rootReal, worktreePath }; }