Deterministic coordination of concurrent agent edits
Abstract. When a fleet of coding agents edits one repository at once, someone must decide which changes flow together and which need a human. hypha makes that decision with mathematics — never a model: an LLM may write the code, but a deterministic kernel with a structural no-false-merge guarantee decides what merges. This page is the instrument's manual; the instrument itself is embedded below, running in your browser.
- A1 fleet/pricing — "raise the unit price"
- A2 fleet/catalog — "rename item labels to sku"
- A3 fleet/pricing-2 — "rewrite price with rounding"
§ 1 · what happens to an edit
Every edit walks five steps, each pure and deterministic. Ingest turns source into content-addressed nodes — one function, one node, addressed by the hash of what it is, not what it is called; a rename is diff-zero. The edit is then derived into a typed change: the exact node cids it removes and adds, plus its namespace effects. An O(1) bloom cone pre-filter over each change's read/write surface lets provably-disjoint pairs skip the exact judge, whose escalate-by-default rules are the only path to auto-composition. Finally, compose or escalate: pairwise-commuting sets merge order-free, proven by execution; everything else is held, with its reason, for review.1
The verdict for a pair is not a probability. It is the classical conflict-serializability condition — disjoint read/write surfaces — lifted to content-addressed semantic units, so the same inputs produce the same verdict, forever.2
1The always-on, ahead-of-the-question verdict follows Crystal (Brun, Holmes, Ernst & Notkin, ESEC/FSE 2011), which showed speculative merge analysis works best when its answers are ambient and unobtrusive rather than on-demand.
2Commute = disjoint read/write is conflict-serializability from database concurrency control; content-addressed definitions echo Unison and Merkle/Git addressing.
§ 2 · the guarantee
Theorem (no false merge). If the cone pre-filter declares two changes disjoint, the exact judge would auto-compose them.
Proof sketch. If two changes really conflict, they share an element x. A bloom is deterministic, so x sets the same bits in both fingerprints, and the bitwise AND is non-zero. "Provably disjoint" therefore structurally implies auto-composition. The worst case is a needless re-check; a wrong "safe to merge" cannot occur. ∎
The property is enforced by 60 property tests with falsifiable canaries — an injected bug makes them fail. Escalation is not failure; it is the kernel refusing to guess.3
3The interface spends color the way calm technology (Weiser & Brown, 1996) spends attention: everything is ink on paper except the two verdicts. The loudest thing on any screen is a held change.
§ 3 · sources, honestly cited
hypha stands on established ideas, combined for a new setting — and so does this interface. The matrix at the center of the bench is Bertin's reorderable matrix: permuting rows and columns until structure appears, here the block of changes that merge as one train.4 Matrices were chosen over node-link diagrams deliberately: for dense graphs they read better on almost every task.5
- J. Bertin, Sémiologie graphique, 1967 — the reorderable matrix.
- M. Ghoniem, J.-D. Fekete, P. Castagliola, "On the readability of graphs using node-link and matrix-based representations," Information Visualization, 2005.
- Y. Brun, R. Holmes, M. D. Ernst, D. Notkin, "Proactive detection of collaboration conflicts," ESEC/FSE 2011 — Crystal.
- M. Weiser, J. S. Brown, "The coming age of calm technology," 1996.
- Conflict serializability — database concurrency control; content-addressing — Unison, Nix, Merkle/Git; incremental re-verification — salsa / rust-analyzer, Bazel.
4Bertin showed a matrix's structure is revealed by successive permutation of its rows and columns. The bench's composed order toggle is exactly that operation, computed by the kernel's greedy compose-group.
5Ghoniem et al. 2005: beyond ~20 vertices, matrix representations outperform node-link diagrams on most reading tasks — and an agent fleet is a dense little graph.