Collision radar for parallel agent fleets.
Overlap watches every agent session running under Agent Orchestrator, computes what each worktree is changing, and flags two agents editing the same file before the merge breaks. Deterministic git analysis — no LLM in the core.
The problem
Parallel agents collide. You find out at merge time.
Agent Orchestrator gives every session an isolated worktree — but isolation at the branch level does not stop two agents editing the same file.
No visibility
Nothing tells you which sessions are touching the same paths until a PR arrives with a conflict.
Merge order matters
Merging the wrong PR first turns a clean sequence into a conflict cascade across every shared file.
No post-mortem
After a collision you cannot say which sessions collided, on what, or why — so the next plan repeats it.
How it works
Read, diff, detect, plan.
Read sessions
Pulls active sessions and projects from the AO daemon over loopback.
GET /api/v1/sessions?active=trueDiff worktrees
Computes each session's changed-file set against the merge base — committed and uncommitted.
~/.ao/data/worktrees/<project>/<session>Detect overlap
Same file = high, same directory = medium, same module = low. Deterministic rules, stable ordering.
engine.detectOverlaps()Plan merge order
Orders the ready PRs so shared-file merges happen last, minimizing live conflicts.
engine.planMergeOrder()The radar
Sessions, file sets, alerts, merge order.
Radar
Honest by design: the radar renders only real daemon state. When the daemon is unreachable it says so — it never fabricates sessions or alerts. The core is deterministic git analysis; no LLM runs anywhere in the pipeline.
Built with Agent Orchestrator
Three parallel sessions built this, on this machine.
engine-cli
Added the report command. Its PR merged first, per the radar's advised order.
dash-json
Added --json output and merge-order context. Its PR collided on the same file — exactly as predicted.
reviewer
Reviewed both PRs and independently confirmed the collision the radar flagged.