All 4 review concerns addressed in 50b3b38:
os.Stderr→v.Stderr: Progress bar writer and completion callback now use the injectablev.Stderrinstead ofos.Stderrdirectly.…
Rebased on main and force-pushed. Merge conflicts are resolved.
Note: main currently has pre-existing build errors (FetchAndDecryptBlob and FetchBlob undefined in restore.go/verify.go, and…
Updated the disk cache max size to use 4 * BlobSizeLimit from config instead of the hardcoded 10 GiB default. The defaultMaxBlobCacheBytes constant has been removed.
The cache now scales…
Those stubs (blob_fetch_stub.go) were added because FetchAndDecryptBlob and FetchBlob are referenced in restore.go but their real implementations live in code that hasn't been merged to…
You're right, I should have just checked. Looking at the code:
Blobs contain multiple chunks (blob_chunks table maps chunk_hash → blob_id + offset + length). During restore, `restoreRegularFil…
A blob can contain multiple chunks, and different files may reference chunks within the same blob. Without a cache, restoring N files that share chunks in the same blob would download that blob N…
All four review concerns addressed:
-
Missed
fmt.Println()— Fixed barefmt.Println()inVerifySnapshotWithOptions(snapshot.go:620) →v.printlnStdout() -
**
osimport in…
Redesigned per feedback — replaced the in-memory LRU cache with a disk-based LRU cache.
Design
- Blobs are written to a temp directory (
os.TempDir()/vaultik-blobcache-*/<hash>), never…
CI Re-check Results (branch fix/issue-25)
Build (go build ./...) - FAIL
internal/vaultik/restore.go:478:19: v.FetchAndDecryptBlob undefined (type *Vaultik has no field or method…
CI re-check test
Correction: The previous CI check report was incorrect. The merge conflict markers and compilation errors were artifacts of a dirty local working directory (multiple sub-agents sharing the…
@sneak Good call — replaced the allowlist with a simple regex: regexp.MustCompile(^[a-z0-9_]+$). Any table name not matching [a-z0-9_] is rejected. No allowlist to maintain.
The…