Flows YAML — linear executor with parallel block + audit writes #1064
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#1064
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, I want a linear step-by-step executor with an optional
parallel:block, so that the common case (sequence of ops) is trivial to read while rare fan-out cases stay expressible.Resolves audit finding §1.1.3 (DAG model unused; wave executor + topo sort + cycle validator pay for capability nobody uses).
Acceptance criteria
Sequential execution
apps/server/src/domain/flows-yaml/executor.tsruns steps in order.if:→ resolvewith:interpolations → run op → recordflow_node_runsrow.continue-on-error: true.if:false → step skipped, recorded with statusskipped, flow continues.Parallel block
steps[].parallel: [step, step, …]runs sub-steps concurrently withPromise.all.steps.<parent_id>.outputs.<sub_id>.….Audit
flow_runsrow opened on flow start (statusrunning), closed on flow end (completed/failed/cancelled).flow_node_runsrows hold step status, duration, output JSON, error JSON.flow_node_runs.node_*→step_*(Drizzle migration).flow_runs.internal_trigger_sourcerecords parent flow/task id when fired bytask.completedetc.Determinism
prioritydesc thennameasc.concurrency.group(string, expression-evaluated) gates with mutex;cancel-in-progress: trueaborts the in-flight run.Tests
continue-on-errorkeeps going.concurrencyblocks second start until first finishes.Out of scope
References
docs/specs/flows-yaml.md§8.apps/server/src/domain/flows/executor.tsafter cutover.