cli.sgit.ai / Guides / sgit-ai 0.25.0 release notes: large vaults

sgit-ai 0.25.0: large vaults

The release notes for 0.25.0, written to be read by a person or handed to an agent. Your daily loop does not change, and nothing changes on the server or in how a vault is stored. What changes is how long a command takes on a big vault: it now follows the size of the change, not the size of the vault.

1. Update and check

$ sgit update          # wraps: pip install --upgrade sgit-ai
$ sgit version
sgit-ai v0.25.0

If sgit version shows an older number, you have more than one Python environment. Run python -m pip install --upgrade sgit-ai in the one your harness uses. Existing clones need nothing.

The first status in each clone after the update reads and hashes every file once, to build its new scan cache. On a vault of 76,000 files that took 47 seconds. Every command after it is fast.

2. What it measured

The newsroom reported on 26 October that its source-watch vault had become very slow in 0.24.0. That vault holds 79,465 files in 38,474 folders and 2.7 GB:

The same commands, on vaults of the same shape:

Command0.24.00.25.0Vault
status, nothing changed70.7 s3.9 to 4.4 s76,000 files, 58,061 folders (cli.sgit.ai)
status, one file changed70.8 s4.1 s, the same file reportedthe same
commit of one file1,739 s (29 min)4.6 sthe same
the first commit of all 76,000 filesnot run55 sthe same
status, nothing changed130 s7.4 s228,000 files, 77,227 folders (CLI team)
the first commit of the whole vault2,846 s (47 min)155 sthe same
push of one small commitabout 4 min 15 s (the newsroom's vault)10 to 18 sthe same
history log, 10 commits with counts464 s7.4 sthe same

The cli.sgit.ai figures are local commands on a 4-core cloud sandbox, 0.24.0 from PyPI against the release code on the same clone. The CLI team's are from an in-memory host, so network time is excluded; the newsroom's include it.

3. What changed

4. A bug found before release, and closed

A review of the branch on 26 October found that the first form of the scan cache trusted a file whose size and modification time were unchanged. That form was briefly on dev as 0.24.1, never on PyPI.

If you installed 0.24.1 from dev, update: its cache file is discarded and rebuilt automatically.

5. What is on disk now

Two new files in each clone's .sg_vault/local/, both readable by you alone (mode 0600):

FileHoldsDelete it?
flat-cache/<tree id>.jsonthe head's paths, sizes, content hashes, types and folder tree ids; the newest two headssafe; rebuilt on the next command
scan-cache.jsonevery working-copy path with its timestamps, size, inode and hashsafe; the next status re-reads every file

They hold file names in clear, next to the vault key that is already there (threat model TM-R41):

Backups made with sgit vault backup do not include them. Under the proposed sealed vault keys, they would be encrypted or kept in memory.

Compatibility:

6. Still slow, or not covered

Sources: the CLI's CHANGELOG and its response notes of 26 October 2026 under team/humans/dinis_cruz/claude-code-web/10/26/; the newsroom's slowness report of the same day; cli.sgit.ai's two reviews of the branch, run against SGit-AI__CLI at c6c48187 and 3ffcb5c7, with the full test suite (4,588 passed), the review's reproductions (re-run against the PyPI package, whose code is that of main at 7a3b90aa: 3ffcb5c7 with the version raised), a fuzzer of about 430 commits, and the timings above on a vault of 76,000 files.

This page as markdown · its source, admin/content/docs/update-to-0-25-0.md