Step 13: Client library with Push, Pull, and Prune.

Client orchestrates the two-step push/pull protocol: manifest exchange
followed by chunked blob streaming. Push detects server-newer (returns
ErrServerNewer) and up-to-date states. Pull computes missing blobs
locally and streams only what's needed. Prune delegates to server RPC.

6 integration tests via in-process bufconn server.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-23 23:53:03 -07:00
parent 0078b6b0f4
commit 525c3f0b4f
4 changed files with 426 additions and 4 deletions

View File

@@ -7,7 +7,7 @@ ARCHITECTURE.md for design details.
## Current Status
**Phase:** Phase 2 in progress. Steps 912b complete, ready for Step 13.
**Phase:** Phase 2 in progress. Steps 913 complete, ready for Step 14.
**Last updated:** 2026-03-23
@@ -42,7 +42,7 @@ Phase 2: gRPC Remote Sync.
## Up Next
Step 13: Client Library (No Auth).
Step 14: SSH Key Auth.
## Known Issues / Decisions Deferred
@@ -73,3 +73,4 @@ Step 13: Client Library (No Auth).
| 2026-03-23 | 11 | Proto-manifest conversion: ManifestToProto/ProtoToManifest with round-trip tests. |
| 2026-03-23 | 12 | gRPC server: 5 RPC handlers (push/pull manifest+blobs, prune), bufconn tests, store.List. |
| 2026-03-23 | 12b | Directory recursion in Add, mirror up/down commands, 7 tests. |
| 2026-03-23 | 13 | Client library: Push, Pull, Prune with chunked blob streaming. 6 integration tests. |