Add local CAS pin metadata

This commit is contained in:
Eric Wendland 2026-05-16 16:36:35 +02:00
commit 00471bcec0
9 changed files with 169 additions and 16 deletions

View file

@ -88,8 +88,9 @@ Resource kinds:
## Module Overview
`geth-cas` is implemented locally first using BLAKE3 hashes and filesystem blob
storage. Iroh-blobs, providers, encrypted blobs, manifests, and file sync trees
are future work.
storage. Local pin/unpin metadata is tracked in SQLite and surfaced in
`cas list`. Iroh-blobs, providers, encrypted blobs, cache cleanup, manifests,
and file sync trees are future work.
`geth-kv`, `geth-db`, `geth-document`, `geth-pubsub`, `geth-pipe`, and
`geth-ssh-proxy` currently define types, command shape, and roadmap stubs.

View file

@ -200,11 +200,14 @@ authorization and durable-state boundaries clear.
- Provider tracking is recorded locally.
- Local add/get/hash/has/list behavior remains backward compatible.
- `[ ]` CAS pin and cache policy.
- `[~]` CAS pin and cache policy.
Acceptance criteria:
- Pinned blobs are retained across cache cleanup.
- Unpinned cached blobs can be evicted by policy.
- Tests cover pin, unpin, list, and attempted eviction of pinned data.
- `[x]` `geth cas pin <hash>` persists local pin metadata.
- `[x]` `geth cas unpin <hash>` removes local pin metadata.
- `[x]` `geth cas list` reports pinned versus unpinned blobs.
- `[ ]` Pinned blobs are retained across cache cleanup.
- `[ ]` Unpinned cached blobs can be evicted by policy.
- `[ ]` Tests cover attempted eviction of pinned data.
- `[ ]` Encrypted private blobs.
Acceptance criteria: