Add deterministic CAS tree objects

This commit is contained in:
Eric Wendland 2026-05-17 21:20:24 +02:00
commit 64e17ff957
7 changed files with 194 additions and 6 deletions

View file

@ -90,8 +90,10 @@ Resource kinds:
`geth-cas` is implemented locally first using BLAKE3 hashes and filesystem blob
storage. Local pin/unpin metadata is tracked in SQLite and surfaced in
`cas list`. `cas cleanup` removes unpinned local blobs while retaining pinned
blobs. Iroh-blobs, providers, encrypted blobs, richer cache policies, manifests,
and file sync trees are future work.
blobs. The CAS crate can build deterministic tree objects that describe
directories, files, executable bits, and file blob hashes; those tree objects
are stored as CAS blobs. Iroh-blobs, providers, encrypted blobs, richer cache
policies, file roots, and sync conflict handling are future work.
`geth-db` currently registers local SQLite paths as DB resources and reports
local-only sync status plus a read-only SQLite schema summary/hash. It also

View file

@ -344,11 +344,12 @@ Automerge documents.
Goal: build higher-level local-first collaboration on CAS trees, resource auth,
and future group key evolution.
- `[ ]` CAS tree objects.
- `[x]` CAS tree objects.
Acceptance criteria:
- Tree objects describe directories, files, executable bits, and blob hashes.
- Tree objects are content-addressed and stored in CAS.
- Tests cover deterministic tree hashing.
- `[x]` Tree objects describe directories, files, executable bits, and blob
hashes.
- `[x]` Tree objects are content-addressed and stored in CAS.
- `[x]` Tests cover deterministic tree hashing.
- `[ ]` File roots.
Acceptance criteria: