feat(FN-5007): complete Step 2 — add merger finalized-task guard

Fusion-Task-Id: FN-5007
Fusion-Task-Lineage: 934e5a11-898d-4623-93d3-1c49d13c5d4c
This commit is contained in:
Fusion (runfusion.ai)
2026-05-18 02:25:23 -07:00
committed by gsxdsm
parent 456b7897df
commit 7dc7f3ff4e
3 changed files with 175 additions and 0 deletions

View File

@@ -6157,6 +6157,29 @@ export async function aiMergeTask(
// 1. Validate task state
const task = await store.getTask(taskId);
if (task.column === "done" || task.column === "archived") {
const message = `merger: skipping squash for ${taskId} — task already finalized (column=${task.column})`;
mergerLog.log(message);
await (store as any).recordRunAuditEvent?.({
domain: "database",
mutationType: "task:auto-merge-skipped-already-done",
target: taskId,
metadata: {
column: task.column,
mergeConfirmed: task.mergeDetails?.mergeConfirmed ?? false,
},
});
return {
task,
branch: task.branch || `fusion/${taskId.toLowerCase()}`,
merged: false,
noOp: true,
ok: true,
reason: "already-finalized",
worktreeRemoved: false,
branchDeleted: false,
};
}
const mergeBlocker = getTaskMergeBlocker(task);
if (mergeBlocker) {
throw new Error(`Cannot merge ${taskId}: ${mergeBlocker}`);