Merge pull request #1509 from Runfusion/feature/workflow-loop-nodes
Show auto-merge toggle on workflow review columns
This commit is contained in:
@@ -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").
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
} from "../builtin-traits.js";
|
||||
import { TraitRegistry } from "../trait-registry.js";
|
||||
import { BUILTIN_CODING_WORKFLOW_IR } from "../builtin-coding-workflow-ir.js";
|
||||
import { BUILTIN_STEPWISE_CODING_WORKFLOW_IR } from "../builtin-stepwise-coding-workflow-ir.js";
|
||||
import type { WorkflowIrV2 } from "../workflow-ir-types.js";
|
||||
|
||||
function freshRegistry(): TraitRegistry {
|
||||
@@ -107,4 +108,24 @@ 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);
|
||||
});
|
||||
|
||||
it("the stepwise workflow's in-review column resolves review and merge flags", () => {
|
||||
const r = freshRegistry();
|
||||
const ir = BUILTIN_STEPWISE_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);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -14,7 +14,7 @@ import { builtinPromptConfig } from "./builtin-workflow-prompts.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
|
||||
*
|
||||
@@ -40,7 +40,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" }] },
|
||||
|
||||
@@ -27,8 +27,9 @@ import { builtinPromptConfig } from "./builtin-workflow-prompts.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
|
||||
@@ -53,7 +54,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" }] },
|
||||
|
||||
Reference in New Issue
Block a user