Prior art
pds.js @pdsjs/git
Section titled “pds.js @pdsjs/git”@pdsjs/git stored a repository as one record holding every ref, plus a
chain of git bundles. Any two pushes to the repository contended on that
one record. knotless splits refs into records with a compare-and-swap each,
and replaces bundles with self-contained packs that arrive inline with the
listing.
Tangled
Section titled “Tangled”Tangled keeps git on separate servers (“knots”) and the social records in
the PDS. knotless keeps git in the PDS as well. Its server, knotless-serve, is
optional: a cache that anyone can run and nobody has to trust, and a
gateway that only the owners who delegate to it trust.
Anthropic’s Scion
Section titled “Anthropic’s Scion”Scion (“Redesigning source control at Anthropic”, October 2026) replaced git inside Anthropic once agents pushed merges past 30,000 a day. These of its lessons carry over:
- Clients are online, so fetch by immutable hash through tiers of caches
(
knotless-serve, the object API). - Shared mutable state should be a compare-and-swap on one row (one record per ref).
- Refs are the scaling problem, so agents should work on their own branches.
- A working copy is optional (
knotless commit).
Cursor Origin
Section titled “Cursor Origin”Cursor Origin keeps git’s wire protocol and builds the agent-facing forge
around it. knotless-serve makes the same bet for reads: plain git
clients, with no special client required.