Block a user
Non-darwin KeychainUnlocker stub returns errors instead of panicking (closes #7)
Remove redundant longterm.age encryption in Init command (closes #6)
Zero plaintext after copying to memguard in DecryptWithIdentity (closes #5)
Fix NumSecrets() always returning 0 (closes #4)
Fix getLongTermPrivateKey derivation index hardcoded to 0 (closes #3)
Bound blob cache during restore with LRU eviction (closes #29)
Prevent double-close of blobgen.Writer in CompressStream (closes #28)
Validate table name against allowlist in getTableCount (closes #27)
Use v.Stdout/v.Stdin instead of os.Stdout for all user-facing output (closes #26)
Return errors from deleteSnapshotFromLocalDB instead of swallowing them (closes #25)