- fix: fragments are hidden in the add-step dialog when the target edge is
inside a foreach/loop/optional-group (they expand to top-level subgraphs
and cannot splice into a template-child edge), and
spliceInsertedSubgraphOnEdge now refuses container-internal edges as a
second line of defense (Greptile P1 x2).
- test: add-step modal container-target hiding, multi-entry/exit splice
fan-out, internal-cycle entries fallback, ambiguous merge-inbound
lifecycle fallback, and edge-targeted "as optional group" wiring
(CodeRabbit nitpicks).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- fix: edge-targeted fragment and "insert as optional group" picks from the
add-step dialog now splice the inserted subgraph into the targeted edge
(entries inherit the original routing condition, exits feed the old
target, subgraph moves into the source's column band) instead of dropping
disconnected fixed-position nodes (Greptile P1).
- feat: the lifecycle warnings banner is now a one-line collapsible
disclosure (count summary, details on expand) so it no longer dominates
the editor header.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds a simplified graphical node editor as the workflow editor's default
view: a modern vertical auto-laid-out React Flow canvas with insert-on-edge
"+" affordances and a searchable, categorized add-step dialog (node kinds +
fragments + step templates). A segmented Simple/Advanced/List switch
(persisted in localStorage) keeps the full advanced canvas untouched and
retains the old compact row editor as the List fallback. Mobile's graph tab
gains the touch-friendly simplified canvas with the row list as fallback.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>