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

@@ -143,8 +143,8 @@ Depends on Steps 9, 10, 11.
Depends on Step 12.
- [ ] `client/client.go`: Client struct, `Push()`, `Pull()` methods
- [ ] `client/client_test.go`: integration test against in-process server
- [x] `client/client.go`: Client struct, `Push()`, `Pull()`, `Prune()` methods
- [x] `client/client_test.go`: integration tests (push+pull cycle, server newer, up-to-date, prune)
### Step 14: SSH Key Auth