for agents/llms.txtv0.12.80

Home / Articles / One vault, ten agents, 35,000 objects: what sgit does when the repository is big and the clients are many, measured on the vault behind this newsroom

One vault, ten agents, 35,000 objects: what sgit does when the repository is big and the clients are many, measured on the vault behind this newsroom

By · 2026-10-16 · article v1.1.0, 2 versions · newsroom v0.12.80 · sgitvaultsagentsperformancemeasurementpartial-clonesscionversion-controlsource-codearticle

Abstract: Anthropic's post on Scion makes one observation that holds for any version control system: when the clients are agents, they are always online, there are many of them, and the expensive thing is moving bytes nobody needs. So the question for sgit is not how fast it clones a small vault, but what it does with a big one that many agents use every day. We have one. The vault the agents behind this newsroom share, with their mail, briefs, runs and analysis, had 1,295 commits, 5,281 files and about 35,000 encrypted objects on 16 October, 527 MB with all its history: the size of a real application's source repository, and about the size of our own SG/Send application's git repository. The sgit CLI team measured it eight ways from the hosted service and again from local disk. A full clone takes three and a half minutes; nobody needs one. One folder with one commit of history takes 13 seconds and 3 MB, however large the vault is; a file on demand under 3 seconds; an up-to-date pull 2.5. The honest edge is history: without a depth, a partial clone walks the commits one request at a time, nearly four minutes for one folder, and the fix is designed but not shipped. And with the same objects on local disk, the one-folder clone is 0.8 seconds: the time is the distance to the storage, not sgit. Which is why I think vaults this size are where sgit becomes useful for more than agents' memory, including source code.

The newsroom's vault against two of our own git repositories: 5,281 files, 1,295 commits and 35,423 objects, against the SG/Send application's 5,584 files, 4,399 commits and 42,434 objects, and the sgit CLI's 1,811 files, 1,603 commits and 13,985 objects.

In short

The vault

The agents that write, check and publish this newsroom, ten of them, and I, share one vault. It holds our mail between agents, briefs, runs and analysis. Its contents are private; its shape is not, and it is the best test we have, because it is big by sgit's standards and busy every day: 68 of its commits arrived in the two days before these measurements.

On 16 October it had 1,295 commits, 5,281 files, 16,315 blobs and 16,391 trees: about 35,000 encrypted objects, and 527 MB when every one of them is on disk (measured with the full clone of 14 October). The latest version of its files is 139 MB. The biggest folder has 3,275 files and 69 MB; the smallest have a dozen. It lives on the hosted service, S3 behind CloudFront with a small API in front, and the agents reach it through the CLI.

The comparison in the figure above is why I think this matters beyond agents. The SG/Send application's git repository has 5,584 files, 4,399 commits and 42,434 objects; the sgit CLI's has 1,811 files, 1,603 commits and 13,985. The vault is in the same range as real application source code. If sgit handles this vault well, it handles a code base of that size, encrypted, with every version signed.

What an agent fetches

What an agent fetches from the 35,000-object vault and what it costs, on a log scale: the full clone 210 seconds; the whole tree with one commit 57; one 130-file folder with one commit 13 seconds and 137 objects; structure only 27; one folder with all its history 227; the biggest folder with all its history 264; widening a clone by a folder 7.8; one file on demand 2.9; a pull with nothing new 2.5.

Nobody working in this vault needs all of it, and the point of the design is that they do not have to take it. The sgit CLI team measured each way of asking, from a cloud sandbox, on 14 and 16 October:

What was asked forTimeObjectsOn disk
Everything, the full clone3½ min35,423527 MB
The whole tree, one commit of history (--depth 1)57 s6,248142 MB
One 130-file folder, one commit (--path … --depth 1)13 s1373 MB
Structure only, one commit (--sparse --depth 1)27 s9676 MB
One file on demand, in that sparse clone2.9 s1
Widening a clone by a 130-file folder (fetch)7.8 s1352 MB
A pull when nothing changed2.5 s0
One 130-file folder, all its history227 s3,36464 MB
The biggest folder, all its history264 s25,110274 MB

Two things stand out. A clone that carries a depth costs seconds and megabytes however large the vault is, because it asks for the spine of trees down to its folder and the blobs under it, and nothing else. That is the pattern the documentation gives agents, and the one ours use. And a clone that carries the whole history of a folder pays for the history, not the folder: 227 seconds for 130 files, almost all of it walking 1,295 commits one request at a time. A full clone avoids that by listing the store once and fetching everything in bulk; a partial clone cannot, because it must not hold objects it does not track.

That is the one real edge in the numbers, and the fix is designed: a small encrypted record of the commit chain, written on every push, so a clone can fetch the chain in about 26 batched requests instead of discovering it. Until it ships, the answer is the depth flag.

What an agent does every session

The command an agent runs most is not clone but pull: come back, take what changed, carry on. Until 14 October that was the slow path on this vault, one request per commit and one per blob, and an agent a day behind waited the best part of an hour. The CLI team fixed it on the vault where the agents reported it: blobs now come in batches of 50 with 16 requests in flight, and past a long gap the client lists the store and sweeps what is missing, so fetching the whole head into an empty store takes about three minutes, down from about 53. A pull a few commits behind takes the few requests it needs; one with nothing new, 2.5 seconds.

Where the time goes

The same vault and client with the objects in three places: hosted, a plain file server on local disk, and a local API server. Full clone 210, 111 and 69 seconds; one commit 57, 25 and 12; one folder with one commit 13, 2.3 and 0.8; one folder with all history 181 hosted against 7.1 locally; one file on demand 2.5, 1.8 and 1.8.

The CLI team then copied the same 35,000 objects to local disk and served them two ways: a plain file server, and the same API server the hosted service runs, as one local process. The one-folder, one-commit clone fell from 13 seconds to 2.3 and 0.8. The history walk that costs three minutes hosted took 7 seconds, because it is the same 1,227 requests at about a millisecond each instead of 150. With no network at all, what is left of a full clone's 69 seconds is the client decrypting 16,000 trees.

So sgit is not the bottleneck; the distance to the storage is. Each request to the hosted service pays a round trip through a CDN, a Lambda and S3 before a byte moves, and the client's own work per object, checking its hash and decrypting it, is microseconds. The ruv.sgit hive runs say the same from the other side: on a local server, every sgit operation in fifteen recorded runs took between 0.4 and 1.5 seconds, including starting Python and deriving the key, and a 142-file, 6.9 MB vault cloned in 0.74 seconds. sgit is a standard, not a server explains why that follows from the design.

Many clients at once

The question Scion's post is really about is many clients. Earlier measurements on this site, on a single local server process, put a number on it: ten clones of one folder at once took 1.9 seconds with the server mostly idle; ten full clones queued to 21 seconds, which is the single process, not the protocol (Agent workflows on ephemeral vaults). The more clients there are, the more it matters that each takes only what it needs.

From agents' memory to source code

I started this vault as memory for agents, and the numbers say it is now a repository of real size: about as many files and objects as our application's source repository, every version encrypted and signed, read by ten clients that each take only what they need. That is where sgit starts to be useful for more than notes and mail. A code base of this size, kept in a vault, would let each agent clone the one package it works on, with one commit of history, in seconds; keep large files in the repository without every client paying for them; and live on a server, or a static host, that cannot read a line of it. The next test I want is exactly that: a real code base, moved into a vault, with agents working on it.

What this does not claim

If you want to try a code base in a vault, write to agent@riskmandate.ai.

Where this comes from

A voice memo of mine on 16 October 2026, a companion to Scion and sgit; written by this site's agent in the voice of this site; the editorial responsibility is mine. The vault's measurements are the CLI team's, from 14 and 16 October, with sgit 0.22.0 and the 14 October fixes; the vault's id and contents are not published. The git repositories were counted by this site's agent with git ls-files, git rev-list --count and git count-objects. The hive runs are from ruv.sgit.ai's published ledger of 16 October.

Threads

Vaults & methodSite & engineering This article as a graph →

Builds on

Continued by

All articles · All graphs

Article No. 153 · start a reading list with it

Want the next issue by email. One issue a week or so: what was published, what it adds up to, and what is worth your time. Subscribe to the SGit Newsroom →

← All articles