1.8 KiB
1.8 KiB
Tasks — Orchestrator Advanced Flows
Prerequisites
- v2.7.17 on main (orchestrator + flow-runner shipped)
- v2.8.0 on main (fork-lifts complete)
Tasks
1. Trigger rules in Step type
- 1.1 Add
TriggerRuletype toconductor/types.ts - 1.2 Add
trigger_rule?: TriggerRulefield toStepinterface (defaultsall_success) - 1.3 Write
evaluateTriggerRule(deps, rule): booleaninflow-runner-decisions.ts - 1.4 Unit tests for each rule variant
2. Variable substitution
- 2.1 Write
resolveVariables(prompt, completedSteps): stringin flow-runner - 2.2 Supports
$stepId.outputand$stepId.output.field(dot-path) - 2.3 Unit tests with multi-step outputs
3. Approval gate step kind
- 3.1 Add
'approval'toStepKindunion - 3.2 Flow-runner: when step.kind === 'approval', pause and publish
permission_requestedframe - 3.3 Wire
permission_resolvedframe handler to unblock blocked step - 3.4 Test: approval gate pauses flow, approval resumes it
4. Event-sourced step log
- 4.1 Create
flow_step_eventstable inapps/coder/src/schema.sql - 4.2 Write
appendStepEvent(runId, stepId, event, payload?)helper - 4.3 Wire events into flow-runner lifecycle hooks (start, complete, fail, skip, pause, resume)
- 4.4 Unit test: events are recorded in order
5. Example flow with parallel branches
- 5.1 Create
conductor/flows/parallel-research.ts— splits into 3 parallel research steps, then joins with synthesis - 5.2 Uses
trigger_rule: 'one_success'on the synthesis step - 5.3 Integration test: parallel flow completes correctly
6. Smoke
- 6.1 Run parallel-research flow with 3 agents
- 6.2 Verify synthesis step triggers on first completion
- 6.3 Verify variable substitution in synthesis prompt