Block a user
Restore silently continues when individual file restoration fails
Restore has no progress bar for file restoration
uploads table FK on snapshot_id lacks ON DELETE CASCADE
snapshot_files FK on file_id lacks ON DELETE CASCADE
No database migration support — schema changes require full re-backup
PruneBlobs has O(n²) duplicate snapshot ID detection
Manifest is unencrypted — leaks blob count and sizes
ListSnapshots has destructive side effect: deletes local snapshots not in remote
ctime is in schema and model but verify scanner populates it correctly
Restore: blobCache grows unboundedly, will OOM with large backups
RemoveAllSnapshots has O(n²) duplicate detection for snapshot IDs
syncWithRemote deletes snapshot records without cleaning up related tables
PurgeSnapshots operates across all snapshot names, no per-name filtering
getTableCount uses fmt.Sprintf for SQL table name — potential SQL injection
ListSnapshots downloads manifests synchronously for unknown remote snapshots
deleteSnapshotFromLocalDB silently ignores all errors
--prune flag on snapshot create is a TODO
Restore: downloaded blob hash is not verified
Shallow verify path: deep verification is a TODO stub