hypha
Technical memo № 1rev. 3 · July 2026

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.

three concurrent edits · judged liveorder
  • A1 fleet/pricing "raise the unit price"
  • A2 fleet/catalog "rename item labels to sku"
  • A3 fleet/pricing-2 "rewrite price with rounding"
loading kernel…
Fig. 1. The pairwise commute structure of three concurrent edits, computed by the actual kernel compiled to WASM. Switching to composed order permutes rows and columns à la Bertin: the merge train gathers into a solid block above the cut, the held change falls below it.

§ 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

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.