From 0c031b8fe878e1ff071e002f5cc5c6f875689737 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sun, 21 Jun 2026 19:03:37 -0700 Subject: [PATCH] chore(FN-6880): changeset + record deferred legacy-retirement scope Add the minor changeset for the optional-group feature (U1-U6) and document in the plan why the full legacy optional-steps retirement (U7) is deferred: the workflow-step seam is shared engine infrastructure across ~9 files and the dashboard still carries the prior declaration authoring surface (~10 files), so removing the core type without that cleanup breaks the build. The new model is the live path; the legacy declaration surface is inert pending a focused follow-up. Co-Authored-By: Claude Opus 4.8 (1M context) --- .changeset/workflow-optional-group-subgraphs.md | 5 +++++ ...02-feat-workflow-optional-group-subgraphs-plan.md | 12 ++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 .changeset/workflow-optional-group-subgraphs.md diff --git a/.changeset/workflow-optional-group-subgraphs.md b/.changeset/workflow-optional-group-subgraphs.md new file mode 100644 index 0000000000..46a98cc066 --- /dev/null +++ b/.changeset/workflow-optional-group-subgraphs.md @@ -0,0 +1,5 @@ +--- +"@runfusion/fusion": minor +--- + +Workflow editor: optional steps are now graph-native. A new `optional-group` container node (foreach/loop-style) holds a subgraph the executor runs once when the group is enabled for a task (per-task `enabledWorkflowSteps` + workflow `defaultOn`) and bypasses when disabled. All seven built-in add-ons (documentation-review, qa-check, security-audit, performance-review, accessibility-check, browser-verification, frontend-ux-design) are insertable from the node-editor palette as a node or wrapped in an optional-group. The built-in coding and stepwise-coding workflows now express `browser-verification` as an optional-group. The legacy declaration-based optional-steps surface remains for back-compat; its full removal is a follow-up. diff --git a/docs/plans/2026-06-21-002-feat-workflow-optional-group-subgraphs-plan.md b/docs/plans/2026-06-21-002-feat-workflow-optional-group-subgraphs-plan.md index 4580430acf..e5e89f55bd 100644 --- a/docs/plans/2026-06-21-002-feat-workflow-optional-group-subgraphs-plan.md +++ b/docs/plans/2026-06-21-002-feat-workflow-optional-group-subgraphs-plan.md @@ -540,6 +540,18 @@ surfaces are enumerated: - Step→node projection (`workflow-steps-to-ir.ts`) reused to project add-ons (U5). ### Deferred to Follow-Up Work +- **Full legacy-path retirement (U7) — deferred after execution-time scope discovery.** U1–U6 shipped and + the new model is the live path (built-ins migrated, resolver + executor on optional-group nodes). The + legacy declaration surface is now inert but **not removed**, because U7 turned out far larger than scoped: + (a) `workflow-step` is a shared `WorkflowSeam` union member woven through ~9 engine runtime files + (`runtime-primitives`, `step-session-executor`, `workflow-node-handlers`, `active-session-registry`, + `workflow-graph-task-runner`, `executor.runWorkflowSteps`, the compiler seam-anchor), not an + optional-steps-only node — excising it is its own refactor; and (b) the dashboard still carries the prior + declaration **authoring** surface (`WorkflowOptionalStepsPanel`/`WorkflowOptionalStepsDropdown`, the + `flowToIr` `optionalSteps` threading, `optionalStepsOf`) across ~10 files. Removing the core + `WorkflowOptionalStep` type without that dashboard cleanup breaks the build. Retire both surfaces in a + focused follow-up; until then the `WorkflowOptionalStepsPanel` authors declarations the resolver no longer + reads (a known dead-authoring UI to remove with it). - **Nested/conditional groups** (an optional-group inside a split/foreach, or gated by a workflow field rather than the per-task toggle) — single-level, per-task-toggle only for now. - **Plugin-contributed add-ons as optional-group presets** beyond inserting them as flat nodes.