v0.8.0
Stall Detection, Auto-Merge & Plugin Configuration
Agents that go quiet now get caught. Worktree branches merge automatically on cleanup. Everything is configurable.
Stall Detection
Two independent detectors escalate to the lead when a teammate stops making progress:
- Token-based: tracks output tokens per model step — flags when last N steps all produce < 500 tokens
- Time-based: flags when no
team_messageorteam_tasks_completefor 3 minutes - Both nudge the stalled teammate directly AND notify the lead via system message
Auto-Merge on Cleanup
team_cleanupnow squash-merges all worktree branches into the working directory as unstaged changes- Stash-safe: preserves your existing staged/unstaged files during the merge cycle
- Merge conflicts are reported to the lead — conflicted branches are skipped, not lost
- Disable with
"mergeOnCleanup": falsein config
Plugin Configuration
- New config file:
~/.config/opencode/ensemble.json(global) and.opencode/ensemble.json(project) - Project config overrides global, env vars override everything
- Configurable: merge behavior, stall thresholds, timeouts, rate limits
- Type-validated: invalid config values are silently ignored
Also in this release
- Richer
team_status: shows activity duration, last message time, and current task per member - Spawn circuit breaker: stops retrying after 3 consecutive spawn failures
- Richer compaction context: teammates remember their original task prompt and recent messages after compaction
- Inline task details in lead system prompt: active and recently completed tasks shown without calling
team_tasks_list - Progress tracker cleanup on shutdown: prevents memory leaks for dead sessions
- 423 tests including a new stress test harness covering full lifecycle scenarios
- Fixed pre-existing flaky timing tests
Full Changelog: v0.7.1...v0.8.0