Flows YAML — shadow mode, per-flow cutover, legacy deletion #1060
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#1060
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As the platform operator, I want to run the YAML executor in shadow mode alongside the legacy JSON node engine, validate behaviour parity per flow, cut over flows one at a time, and finally delete the legacy code path, so that the migration is incremental and reversible at every step.
Acceptance criteria
Shadow mode
service_settings.flows_yaml.mode∈"off" | "shadow" | "live"with per-flow override.shadow, both engines see the event; YAML engine writes toflow_runs_yaml(separate table) and runs no real dispatches (opdispatchbecomes a no-op recorder; same for label/comment ops).flow_runs_yamlagainstflow_runsfor the same triggers; report of mismatches surfaced in dashboard.Per-flow cutover
just flows-yaml-cutover <name>flips one flow toliveafter operator review.--offreverts to legacy engine for that flow.Legacy deletion (after all 9 cut over)
apps/server/src/domain/flows/{executor,registry,validation,flow-dispatch}.ts.apps/web/src/features/flows/canvas + palette + inspector + React Flow dep.flowstable; renameflow_node_runs.node_*→step_*(Drizzle migration with backfill).flow_runs_yamlshadow table.apps/server/src/http/webhook.ts:296–341.defaultArgInjectionsfromflow-dispatch.ts.specs/node-flows.md+specs/node-flows-ui.md.UI cutover
?legacy=1for one release./flows.Tests / safety
--force.Out of scope
flow_runs+task_historyinto a single events table (separate spec).References
docs/specs/flows-yaml.md§11 (all phases).