Why adding agents stops making things faster
The critical path is the longest dependency chain in a plan. Nothing you do to the rest of the graph moves the finish line until you shorten it.
5 min read
How DevPilot is built, and why. Mostly the decisions that were harder than they looked.
The critical path is the longest dependency chain in a plan. Nothing you do to the rest of the graph moves the finish line until you shorten it.
5 min read
A plan can be valid and still bad. Parallelization, peak width, wave efficiency, dependency density and file conflict are computable before dispatch.
5 min read
Two limits, not one. A global cap protects your machine and your bill; a per-plan cap protects the work from itself. Confusing them is the common mistake.
4 min read
A plan an agent can execute has checkable properties: acyclic dependencies, exclusive file ownership, and tasks that fit in a single context.
4 min read
A queue keeps agents busy. A wave keeps them coherent. The difference is a barrier, and it is why auto-advance is a real feature rather than a scheduler.
4 min read
An audit found api_key_encrypted was plaintext. Fixing the cipher was the easy half — the hard half was proving nothing else can read the column.
5 min read
Our entire bridge API was unauthenticated once. The fix was not more care — it was making the authorization check impossible to skip by accident.
5 min read
Two machines race the same queue row. No advisory lock, no SELECT FOR UPDATE — the conditional UPDATE is the acknowledgement, and the loser gets nothing.
5 min read
We moved dispatch off Pub/Sub and onto a Postgres row. The transaction boundary is the whole reason, and Realtime became an optimisation.
6 min read