feat(FN-5496): reconcile soft-deleted tasks with active blockers

Added soft-delete blocker recovery logic to the scheduler and self-healing systems, enabling reconciliation of stale blocker reasons when tasks are archived or restored. The changes include corresponding tests for the completion guard behavior, scheduler recovery paths, and self-healing integration,

Fusion-Task-Id: FN-5496
This commit is contained in:
Fusion (runfusion.ai)
2026-05-22 10:58:00 -07:00
committed by gsxdsm
parent ba066c88a3
commit c3890a9b43
7 changed files with 263 additions and 2 deletions

View File

@@ -423,6 +423,15 @@ describe("getTaskCompletionBlocker", () => {
}, { resolveTask })).resolves.toBeUndefined();
});
it("treats soft-deleted blockedBy as non-blocking when resolveTask returns null", async () => {
const resolveTask = async (_taskId: string) => null;
await expect(getTaskCompletionBlocker({
...baseCompletionTask,
blockedBy: "FN-SOFT-DELETED",
}, { resolveTask })).resolves.toBeUndefined();
});
it.each(["done", "archived"] as const)("ignores blockedBy when resolveTask reports the blocker is %s", async (column) => {
const resolveTask = async () => ({ id: "FN-4054", column });