[0.12.0] - 2026-03-31
Added
- Added git worktree isolation for parallel execution via
worktree: true. Applies to top-level paralleltasks, chain steps with{ parallel: [...] }, and async/background chain execution. Each parallel task gets its own temporary git worktree, and the aggregated output now includes per-task diff stats plus the directory path containing full patch files. - Added
worktree.tsto manage worktree lifecycle, diff capture, patch generation, and cleanup for isolated parallel runs. - Added
count: Nshorthand for top-level paralleltasksand chainparallelentries so one authored task can expand into repeated identical runs without manual duplication. - Added
subagent_status({ action: "list" })to list active async runs with flattened step/member status summaries. - Added
/subagents-status, a read-only overlay for active async runs plus recent completed/failed runs with per-run step details. The overlay auto-refreshes while open and preserves the selected run when possible. - Documented worktree isolation, async status surfaces, and the reorganized test layout in the README.
Changed
- Consolidated tests under
test/unit,test/integration,test/e2e, andtest/support, replacing the old mixed root-level andtest/layout. Test scripts now target those directories explicitly. - Integration tests now use a tiny local file-based mock
piharness instead of relying on the external subprocess harness for normal subagent execution.
Fixed
- Loader-based tests now resolve
.js→.tsimports correctly when the repository path contains spaces or other URL-escaped characters. Added a focused regression test for the custom test loader. - Worktree-isolated parallel runs now reject task-level
cwdoverrides that differ from the shared batch/stepcwd, instead of silently ignoring them. Applies to foreground parallel runs, chain parallel steps, and async/background execution. - Worktree diff capture now includes committed, modified, and newly created files without accidentally including the synthetic
node_modulessymlink used inside temporary worktrees. - Worktree setup now cleans up already-created worktrees if a later worktree in the same batch fails to initialize.
- Prompt-template delegated parallel responses now preserve the aggregate worktree summary text instead of dropping it when rebuilding the final delegated output.
- Async status and result JSON files are now written atomically so readers do not observe partial JSON during background updates.
readStatus()now returnsnullonly for genuinely missing files and preserves real inspect/read/parse failures with context.- Async status polling and result watching now log status/result/watcher failures instead of silently swallowing them, making background completion/debugging failures visible.
- Slash-command tests now match the current live snapshot contract instead of asserting the stale pre-finalized inline state.