fix(FN-0000): show auto-merge on workflow review columns

This commit is contained in:
gsxdsm
2026-06-08 00:48:28 -07:00
parent c9b780217b
commit d8a015e22c
7 changed files with 28 additions and 7 deletions

View File

@@ -44,7 +44,7 @@ describe("builtin coding workflow ir", () => {
expect(traitsFor("triage")).toEqual(["intake"]);
expect(traitsFor("todo")).toEqual(["hold", "reset-on-entry"]);
expect(traitsFor("in-progress")).toEqual(["wip", "abort-on-exit", "timing"]);
expect(traitsFor("in-review")).toEqual(["merge-blocker", "stall-detection", "merge"]);
expect(traitsFor("in-review")).toEqual(["merge-blocker", "human-review", "stall-detection", "merge"]);
expect(traitsFor("done")).toEqual(["complete"]);
expect(traitsFor("archived")).toEqual(["archived"]);
// todo's hold is capacity-released (legacy "pull from todo when a slot frees").

View File

@@ -107,4 +107,14 @@ describe("default workflow columns validate cleanly", () => {
expect(flags.abortOnExit).toBe(true);
expect(flags.timing).toBe(true);
});
it("the default workflow's in-review column resolves review and merge flags", () => {
const r = freshRegistry();
const ir = BUILTIN_CODING_WORKFLOW_IR as WorkflowIrV2;
const inReview = ir.columns.find((c) => c.id === "in-review")!;
const flags = r.resolveColumnFlags(inReview);
expect(flags.mergeBlocker).toBe(true);
expect(flags.humanReview).toBe(true);
expect(flags.mergeOrchestration).toBe(true);
});
});

View File

@@ -13,7 +13,7 @@ import { BUILTIN_WORKFLOW_SETTINGS } from "./builtin-workflow-settings.js";
* triage = intake
* todo = hold(capacity) + reset-on-entry
* in-progress = wip + abort-on-exit + timing
* in-review = merge-blocker + stall-detection + merge
* in-review = merge-blocker + human-review + stall-detection + merge
* done = complete
* archived = archived
*
@@ -39,7 +39,7 @@ const RAW_BUILTIN_CODING_WORKFLOW_IR: WorkflowIr = {
{
id: "in-review",
name: "In review",
traits: [{ trait: "merge-blocker" }, { trait: "stall-detection" }, { trait: "merge" }],
traits: [{ trait: "merge-blocker" }, { trait: "human-review" }, { trait: "stall-detection" }, { trait: "merge" }],
},
{ id: "done", name: "Done", traits: [{ trait: "complete" }] },
{ id: "archived", name: "Archived", traits: [{ trait: "archived" }] },

View File

@@ -26,8 +26,9 @@ import { BUILTIN_WORKFLOW_SETTINGS } from "./builtin-workflow-settings.js";
* → merge seam
*
* The columns/traits are identical to the default builtin so the full lifecycle
* (merge-blocker, capacity, hold, complete, archived) behaves exactly as it does
* for the default workflow — only the in-progress step modeling differs.
* (merge-blocker, human review, capacity, hold, complete, archived) behaves
* exactly as it does for the default workflow — only the in-progress step
* modeling differs.
*
* It declares its step-source artifact (KTD-12): PROMPT.md produced by the
* planning seam. The IR is v2-only (foreach/step-review/parse-steps are v2 node
@@ -52,7 +53,7 @@ const RAW_BUILTIN_STEPWISE_CODING_WORKFLOW_IR: WorkflowIr = {
{
id: "in-review",
name: "In review",
traits: [{ trait: "merge-blocker" }, { trait: "stall-detection" }, { trait: "merge" }],
traits: [{ trait: "merge-blocker" }, { trait: "human-review" }, { trait: "stall-detection" }, { trait: "merge" }],
},
{ id: "done", name: "Done", traits: [{ trait: "complete" }] },
{ id: "archived", name: "Archived", traits: [{ trait: "archived" }] },