Commit Graph

4 Commits

Author SHA1 Message Date
Maciek "mab122" Bator d67ac79f40 Delegate IPFS/notes work to rad lfs store/fetch, add encryption support
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.
2026-07-14 16:00:53 +02:00
Maciek "mab122" Bator df3d958bc0 readme: drop reference to the rejected prior design 2026-07-14 12:53:13 +02:00
Maciek "mab122" Bator 11236adf83 readme: add zero-to-install quick start, Arch deps, cross-repo links 2026-07-14 12:51:22 +02:00
Maciek "mab122" Bator fb95fd0c68 Initial commit: rad-lfs-transfer, a Git LFS custom transfer agent backed by IPFS
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.
2026-07-14 12:29:36 +02:00