A month ago, your AI coding setup had one agent, one conversation, one thread. You typed a prompt, it suggested the next line, you accepted or rejected. Simple.
But one agent on one task doesn't clear a twelve-item backlog by Friday. You need parallelism: multiple agents working multiple branches simultaneously. The question nobody answered before shipping: what happens to your git history when those branches need to merge?
In the first half of April 2026, four companies shipped parallel coding agents — each with a different strategy for keeping code from colliding. On April 14, Anthropic redesigned Claude Code Desktop with Routines: persistent agents that run in independent sessions. On April 16, OpenAI pushed a major Codex update with agents in sandboxed virtual workspaces. The wave started two weeks earlier: GitHub Copilot launched /fleet on April 1, and Cursor 3 dropped background Agent Tabs on April 2.
Four tools, four isolation models. Here's how each handles the merge problem — and how each fails.
Cursor 3 uses git worktrees — separate directory checkouts per agent. Agents never block each other during work. But Cursor defers all conflicts until merge time. Two agents refactor the same module from different worktrees, and you discover the collision only when unifying branches — after both have built further work atop diverging assumptions.
GitHub /fleet takes a last-write-wins approach. Their own blog states: "If two agents write to the same file, the last one to finish wins — silently. No error, no merge, just an overwrite." The slower agent's output vanishes without a trace. No conflict markers. No warning.
Claude Code Routines give each agent a fully isolated session. Agent A doesn't know Agent B exists. One adds a caching layer; another restructures the data flow that cache depends on. Both branches pass CI independently. Together they crash at runtime.
OpenAI Codex provides the strongest isolation: each agent runs inside a sandboxed VM. Also the hardest to reconcile — you export diffs from VM snapshots and resolve conflicts yourself with standard git. OpenAI ships no merge tooling.
The collision math works against you. In a typical web application, shared modules — utilities, types, configuration, middleware — represent 15–25% of files by count but appear in the import graph of nearly every feature. Dispatch three agents to three "independent" features, and the probability that at least two touch a shared module approaches certainty. Running those agents isn't cheap either: each complex coding session consumes 50k–200k tokens, and five parallel agents can burn $15–40 per dispatch round. When a merge conflict forces a re-run, you pay for the same work twice.
As Addy Osmani wrote on March 26: "Three focused agents consistently outperform one generalist agent working three times as long" — but he warned that "small harmless mistakes compound at a rate that's unsustainable." The sweet spot is razor-thin. Below three agents, you underuse parallelism. Above three, merge overhead devours the gains.
The workarounds all sacrifice the parallelism you paid for. GitHub recommends manually assigning distinct files to each agent — so you decompose the architecture yourself before dispatching. You can sequence agents instead of parallelizing, but that reduces to one-at-a-time with extra ceremony. You can scope tasks so narrowly that agents never overlap, which requires understanding the codebase well enough to guarantee zero file intersection. As Andrej Karpathy wrote on February 3: "you are not writing the code directly 99% of the time, you are orchestrating agents who do and acting as oversight."
The bottleneck moved. Writing code is cheap now. Merging it costs everything the parallelism saved. Your dispatch board is six terminal tabs, three browser windows, and a bet that branch claude/fix-auth doesn't structurally contradict copilot/refactor-auth at the type level.
The next tool that wins the coding-agent war won't ship smarter agents. It'll ship a merge-aware orchestrator that tracks what every agent touches before they finish — not after. Until then, you're running the world's most expensive git merge by hand, one branch at a time.




