for agents: this page is markdown at https://switchyard.so/docs/tradeoffs.md; every page is listed in llms.txt.
Tradeoffs
What Switchyard is not good at yet, with the numbers we measured. We update this page when the numbers change.
One main is one queue
Every task merges into one main through one merge queue, so throughput is bounded by how long checks take. The queue tests several tasks together and keeps going when one fails, but a project with slow checks and hundreds of tasks waits.
| Run | Tasks | Checks per task | Merged | Time from submit to merged (median) |
|---|---|---|---|---|
| 12 October 2026 | 1,000 | 60 s | 998 of 998 submitted | 28 min |
| 13 October 2026 | 100 | 60 s | 100 of 100 | 2.7 min |
Storage is new
Each task's branch lives in Switchyard's own Git storage on Cloudflare R2 since 14 October 2026, one repository per task. Creating one took 1.3 s at the median in our 13 October run, against 6.3 s (14 s at the 95th percentile) on Cloudflare Artifacts, which held them before. The faster merging we shipped on 14 October has not been load-tested yet; the numbers above are from before it.
Code-aware warnings cover six languages
Warnings about symbols and dependencies ("task B calls a function task A is changing") work for TypeScript, TSX, JavaScript, Python, Rust and Go. Other files get line-level overlap warnings only.
Some conflicts still need a person
Switchyard merges line by line and reapplies a resolution a person made before when the same collision comes back. A conflict that needs judgement goes to a person or to the agent whose branch it is. As soon as a conflict is recorded in a task, Switchyard also tries its recipes: JSON files such as package.json are merged structurally, changelogs and ignore files keep both sides' new lines, and imports both sides added are kept, never bringing back a line either side removed. New functions, methods and classes both sides added at the same place in TypeScript, JavaScript, Python, Rust and Go are both kept when the result parses and no name is added twice. Lockfiles for npm and Cargo are regenerated from the merged manifest rather than merged by hand; other lockfiles go to a person. A change it fixed waits for a person's approval unless the project lets fixes go straight in. Where the rules decline, an AI suggestion written by Claude is offered to organizations that turn AI fixes on or set their own Anthropic key; it changes nothing until the task's agent or a person accepts it. Binary files are never merged line by line.
One repository per project
A change cannot span several repositories, and there is no pull-request flow of our own: a project either owns its main or follows one GitHub repository.
Private beta
Sign-in is with GitHub only, for approved accounts. Email sign-in comes later.