---
title: "Runtime fan-out and live parallel runs"
date: "2026-07-27"
---

<Warning>
**Run configuration no longer reads `{{ env.NAME }}` from the server process.** Replace environment interpolation with `{{ vars.NAME }}` for non-sensitive values or `{{ secrets.NAME }}` for vault-backed values. Hook `allowed_env_vars` was also removed.
</Warning>

## Runtime arrays with `for_each`

Parallel workflows can now create one branch per item in a runtime context array. Each branch receives its item and index, while the fan-in receives the ordered results without merging branch updates into top-level context.

```dot
batch [shape=component, for_each="context.candidates"]
batch -> reviewer
```

## Live parallel status and artifact history

The run view now shows parallel branches as they start and finish. The artifacts view groups captures by file and shows version history, while stage model popovers report token usage and cost.

## More

<Accordion title="CLI">
- Validation diagnostics now include their suggested fixes
</Accordion>

<Accordion title="Workflows">
- Command `script` values now interpolate `{{ goal }}`, `{{ inputs.NAME }}`, and `{{ vars.NAME }}`
- A node with `script` now infers the command handler when `shape` and `type` are omitted
- Validation now rejects edge targets that were never declared as nodes
</Accordion>

<Accordion title="Fixes">
- Pull request publish failures now fail the run instead of leaving a successful terminal state
- Default small-model selection now skips providers that do not offer a small model
</Accordion>
