v0.19.0
Added
PARALLELblock primitive — heterogeneous parallel-subagent fan-out as a real grammar element.PARALLELtakes no input and accepts ≥2 indented children; each child runs in its own context window. Defined inskills/canopy-runtime/references/framework-ops.md(mirrored todocs/reference/PRIMITIVES.md); platform emission rules inruntime-claude.md(multi-Taskin one assistant turn) andruntime-copilot.md(fleet subtask /@CUSTOM-AGENT-NAME/ sequential inline fallback). Failure semantics:Promise.allSettled— sibling failures don't abort. Backward-compatible: prose fan-out continues to work as the dynamic-shape escape hatch.
Changed
- Authoring agent now recognizes
PARALLELas a structural target./canopy improveflags prose-fan-out patterns and proposesPARALLEL-block migration alongside existing primitive-migration suggestions./canopy convert-to-canopymaps "spawn N in parallel" prose toPARALLELblocks during conversion./canopy adviserecommendsPARALLELwhen a skill has ≥2 sequential## Agentinvocations with no data dependency between them. - Marker-block updated in all framework sources (
marker-block.md,install.sh,install.ps1) to listPARALLELin the control-flow primitives. The vscode-extension mirror (claude-canopy-vscode/src/commands/installCanopy.ts) is updated separately in extension v0.12.0; parity check passes once both PRs land. - Spec narrative docs (
CONCEPTS.md,FRAMEWORK_SPEC.mdTree Execution Model + Op Lookup Order) extended to enumeratePARALLELalongside existing primitives.
Notes
- This is the Tier 1 / S1 step from the parallel-subagent design ideation. S2 (
## Agents+SPAWNper-subagent schema declarations) and S3 (PARALLEL_FOR_EACHdata-parallel iterator) are deferred — escalate only if real skills demonstrate Tier 1 isn't enough. - No behavioral break: every existing skill continues to parse and run unchanged.
Verifying this release
# Verify the signed tag (uses GitHub's pubkey for SSH/GPG signatures)
git verify-tag v0.19.0
# Verify SLSA build provenance for the install tarball
gh attestation verify canopy-0.19.0.tar.gz --owner kostiantyn-matsebora