v0.3.15 — Bash-aware stall detection
What's fixed
False stalls during long bash commands
The stall detector watched for event gaps on stdout, but long-running bash commands (xcodebuild, package resolution, SDK downloads) produce no stdout events while executing. A 10-minute build looked identical to a dead session.
Fix: The orchestrator now tracks bash tool lifecycle — when a Bash tool_use fires, it marks bash as in-flight. The stall watcher skips idle checks until the tool_result comes back. Stderr output also resets the idle timer.
Agent D gets auto-resume
D (Tester) was the only agent that couldn't be auto-resumed. If D stalled during code-review or testing, the pipeline just gave up. Now D gets the same 3-retry treatment as A and B.
D won't spiral on environment setup
D was spending 15+ minutes trying to download iOS SDKs, Metal toolchains, and simulator runtimes instead of reporting that the build failed. The role file now explicitly tells D to never install or download platform tools — report missing tools as a finding and test with what's available.
Full changelog
v0.3.14...v0.3.15