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.

3
parallel agents in one build
1
collision caught before merge
2
PRs merged, reviewer-confirmed
11/11
engine tests passing

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.

01

Read sessions

Pulls active sessions and projects from the AO daemon over loopback.

GET /api/v1/sessions?active=true
02

Diff worktrees

Computes each session's changed-file set against the merge base — committed and uncommitted.

~/.ao/data/worktrees/<project>/<session>
03

Detect overlap

Same file = high, same directory = medium, same module = low. Deterministic rules, stable ordering.

engine.detectOverlaps()
04

Plan merge order

Orders the ready PRs so shared-file merges happen last, minimizing live conflicts.

engine.planMergeOrder()
Live — reads the AO daemon on this machine

The radar

Sessions, file sets, alerts, merge order.

Radar

loading... · generated at —

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.

01

engine-cli

Added the report command. Its PR merged first, per the radar's advised order.

02

dash-json

Added --json output and merge-order context. Its PR collided on the same file — exactly as predicted.

03

reviewer

Reviewed both PRs and independently confirmed the collision the radar flagged.