Content-addressed storage + the build-input hashing that keys it.
The [ContentStore] trait is the v1 remote-backend seam — it MUST exist in
v0 even though only [LocalDiskStore] implements it, or v1 becomes a
rewrite (decision D10). v0 ships local-disk only; S3/RustFS are v1.
This crate also owns the half of the cargoless-proto contract that cargoless-proto
deliberately does not specify: the hash algorithm ([sha256]) and the
BuildIdentity → InputHash reduction ([input_hash]) that the whole AC#5
dedupe / AC#4 provenance guarantee rests on. The daemon assembles a
BuildIdentity; this crate turns it into the CAS key and stores the bytes.
| Concern | Where |
|---|---|
| stable hash primitive | [sha256] |
BuildIdentity → InputHash, per-file content hashing |
[identity] |
| deterministic whole-source-tree hash | [tree] |
tf clean wipe semantics + safety guard |
[clean] |
| artifact byte storage (trait + local disk) | [ContentStore] |