You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: concurrent task execution with DAG scheduler (#288)
## Summary
- Replace sequential task execution with a concurrent DAG scheduler using `FuturesUnordered` + `tokio::sync::Semaphore` (limit 10 per graph level)
- Each nested `Expanded` graph gets its own semaphore for independent concurrency limits
- Failure propagation via `CancellationToken` — any task failure immediately kills all in-flight processes
- Add `barrier` test tool (cross-platform, `fs.watch`-based) for concurrency testing
- Add e2e tests proving concurrent execution and kill-on-failure behavior
## Test plan
- [x] All existing e2e snapshot tests pass (10 consecutive runs)
- [x] New `concurrent-execution` fixture proves independent tasks run concurrently (barrier with 2 participants — would timeout if sequential)
- [x] Failure test proves cancellation kills concurrent tasks (task b hangs on stdin after barrier, killed when task a fails)
- [x] `cargo clippy` clean
- [x] `cargo test -p vite_task` unit tests pass
🤖 Generated with [Claude Code](https://claude.com/claude-code)
0 commit comments