Private Radicle repos aren't encrypted at the object level -- access
control happens at Radicle's replication layer, which has no jurisdiction
over IPFS's own block-exchange layer. Once content is pinned and joins
the public IPFS network, anyone who obtains the CID can fetch it. A
companion change in radicle-heartwood-lfs adds client-side envelope
encryption for private repos, via two new plumbing commands: `rad lfs
store` and `rad lfs fetch`.
This crate now shells out to those instead of talking to Kubo/git-notes
directly: upload spawns `rad lfs store`, download spawns `rad lfs fetch`.
Removed src/notes.rs entirely (no longer needed -- the Radicle-side
commands own all of that, including note reads/writes) and trimmed
kubo.rs down to just the init-event healthcheck. This crate still has no
dependency on Radicle's identity/crypto stack, and no longer needs `git`
on PATH at all -- only `rad` and a local IPFS daemon.
Implements the Git LFS custom-transfer-agent protocol (init/upload/download/
terminate over stdin/stdout JSON), storing large file content in a local
IPFS (Kubo) daemon rather than a central server. The oid to CID mapping is
carried in git notes on refs/notes/rad-lfs, keyed by each LFS pointer's own
git blob hash, so it replicates with the repository via normal git sync.
Companion to the rad lfs init / seed / unseed support in the paired
heartwood fork.