All checks were successful
check / check (push) Successful in 2m38s
Scanner now writes all user-facing output to an io.Writer (os.Stdout when progress is enabled, io.Discard in --cron mode). This fixes the long-standing issue where --cron still printed progress lines. S3 HeadObject now properly distinguishes not-found from other errors instead of swallowing all errors as not-found. Config/CLI error messages include actionable hints (where to find the config, how to generate keys, what storage options exist).
1.8 KiB
1.8 KiB
Vaultik 1.0 TODO
Remaining tasks before 1.0 release.
Must-fix
-
Scanner uses bare
fmt.Printf(bypasses--cronsilence)- Route all user-facing output through a writer gated by progress/cron flags
- Affects
internal/snapshot/scanner.go(~24 bare print calls)
-
S3 client error type checking
internal/s3/client.go:207has a TODO for proper error type checking
-
Error message polish
- Add actionable suggestions for common failures (missing config, bad storage URL, failed S3 auth, missing age key on restore/verify)
- Only
restore.gocurrently has the "did you set VAULTIK_AGE_SECRET_KEY?" hint
Done
- Rclone storage backend
- Release process (goreleaser, CGO-free cross-compile, checksums)
- End-to-end integration test (backup → restore → verify → byte-compare)
- Restore integration tests
--pruneflag onsnapshot create(per-name retention + orphan blob cleanup)- Per-name purge retention (
--keep-latestper snapshot name,--snapshotfilter) - CLI surface dedup (removed top-level
purgeandverifyduplicates) - Exit codes (create/restore now exit non-zero on failure)
- Deep verify implemented and wired up
- Shallow verify timestamp parsing fixed
- Daemon mode removed
- Makefile targets separated (
lint/test/fmt/check) - CGO eliminated (pure-Go SQLite via modernc.org/sqlite)
- Version set correctly in releases via goreleaser ldflags
Post-1.0
- Edge-case tests (empty dirs, symlinks, special chars, multi-GB files, 100k+ small files)
- Error-condition tests (network failures, disk full, corrupted/missing blobs)
- Parallel blob downloads during restore
- Bandwidth limiting (
--bwlimit) - Security audit of encryption (verify no plaintext leaks, correct hash computation)
- Man pages / richer
--helpexamples - Tag and release v1.0.0