Build1 distinct publisher3 min readPublished
Running several coding agents on one machine is a concurrency-control problem. The boundary a git worktree draws stops well short of the ports, caches, credentials and merge queue where the collisions actually happen.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Follow any of these and your For You feed starts watching them — no settings page required.
build
AI-written code fails the same four ways, and every gate you own reports green1 distinct publisher
build
Grok 4.6 lands in Copilot two days after launch, and the model picker becomes a procurement problem1 distinct publisher
build
Cursor ships Origin default-on to every paid seat1 distinct publisher
build
GitHub Copilot's usage-blocking checkbox stays off until an admin finds it1 distinct publisher
Start at the shell, because that is where the ownership question usually gets answered by accident. Two agents, two worktrees, two branches, both told to bring up the project's dev server and run the tests. Git has done its part: each task has its own branch and working files, so neither is likely to overwrite the other's edits [6]. Nothing in that boundary reserves a port, separates process trees, or splits temporary directories, credentials, network access, browser state or external services [7]. So one task restarts the server the other is halfway through testing [3], and both reach for the same lockfile [4]. The dev.to author's framing is that the first failure in a multi-agent setup probably has nothing to do with model quality [2]. A worktree is a directory. Directories have never been good at holding a TCP port.
The arithmetic of the shared machine is worth doing once. Four workers on one host give six pairs that can contend, because 4 times 3 divided by 2 is 6 [22]. Six is how many chances each unowned resource has to be the thing that breaks: one loopback port [8], one lockfile [4]. That count only transfers if the resources really are shared, which is the case the post assumes, with one repository, one shell, one credential set and one merge queue behind all four sessions [1]. Give each worker its own container, its own loopback and its own token scope and those pairs stop touching, and the ownership map turns into a description of what the platform already enforces. On a laptop it stays a description of what you promised to remember.
The integration argument is separate from the isolation argument, and it is the stronger half. Two patches can each be locally correct and still disagree about an API shape, a migration sequence, a dependency version, a generated file or user-visible behaviour, and git will merge the text cleanly while the combined system is wrong [18]. A branch can pass its own checks and still conflict with a migration already waiting in the queue [5]. There are no conflict markers to grep for in either case, which is why the post calls the merge queue the place where parallel work becomes one product [20].
On evidence, this is a design argument, reasoned rather than measured. The post offers Proliferate as an example that pairs isolated task worktrees with visible review state, and says plainly that the project description is not independent proof that every boundary is solved [21]. Take the pattern; leave the proof claim where the author left it. The part I would defend from my own experience is the reason a second agent changes the job at all: with one worker, an operator can keep a surprising amount of state in their head. With four, every unstated assumption becomes a race condition or a review problem [9].
Ranked by verification strength, evidence, and original report placement.
A dev.to post argues that opening four coding-agent sessions on a shared machine is closer to giving four fast contributors the same repository, shell, credentials, ports, caches and merge queue without deciding who owns any of them.
Git worktrees give each task its own branch and working files, so one agent is less likely to overwrite another agent's edits by accident.
A worktree does not reserve a port, separate process trees, temporary directories, credentials, network access, browser state or external services.
Separate worktrees can still launch services on the same port, read the same environment variables and write to shared caches.
Launching every worker from the operator's normal shell is described as the easiest setup and the one with the least useful separation.
Current agent harnesses do not all enforce these boundaries in the same way; if a tool cannot restrict a credential or network path, the post says to write that limitation into the run record and reduce the task's authority rather than treating the operator's full shell as a reasonable default.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 30, 2026
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Real mechanics, imagined incidents
Split the story in two and the grades diverge sharply. What a git worktree does and does not isolate is checkable in an afternoon, and so is the claim that a clean textual merge can hide a broken combined system — both stand. The collision stories that carry the argument's urgency, though, arrive as predictions: a restarted dev server, a contested lockfile, a migration ambush in the merge queue, none of them attached to a log line, a count or a postmortem. One publisher, one author, no second reading.
No one counted
Not a single figure on who runs parallel agents this way, at what scale, or with what result. The two external markers are GitHub's agentic workflow update and Copilot's August feature notes, both relayed through the post and both flagged by its author as product descriptions rather than reliability evidence. Proliferate appears as a design to imitate, not a deployment to count. We will not turn feature announcements into adoption.
Hedged nearly where it should be
Unusually well calibrated for the genre. The failure predictions carry 'probably' and 'may', the named project comes with its own disclaimer, and the vendor notes are labelled marketing before a reader can mistake them for benchmarks. The small overhang is the checklist: reserve every port, name every artifact, serialise the merge queue, and the implied reward — fewer races, faster diagnosis — is asserted rather than shown, with the cost of all that ceremony never priced.
Two products, no disclosure
The argument is generic; the recommendations are not. Proliferate gets named as the design worth copying, and a browser-local image tool gets a paragraph of its own for resizing launch graphics — a jump in specificity that has nothing to do with agent concurrency. Neither mention comes with a statement of interest, and the piece sits on an open publishing platform under a machine-shaped handle. That is not proof of promotion, but it is the kind of gap a reader should be told about before taking the tool picks at face value.
Trust the audit, test the rest
Middling, and for a specific reason: the parts we would stake something on are the parts you can verify yourself, and the parts we cannot verify are the parts asking you to change how your team works. A single outlet, a single unnamed practitioner, no corroboration, no measurement — but also no bluffing about which is which, which is why this sits at the midpoint rather than below it.