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) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-06-21 19:03:37 -07:00
parent baa2e8f42b
commit 0c031b8fe8
2 changed files with 17 additions and 0 deletions

View File

@@ -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.

View File

@@ -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.