Block a user
Fix FindExtraFiles reporting manifest and dotfiles as extra (closes #16)
Fix newTimestampFromTime panic on extreme dates (closes #15)
Fix IsHiddenPath treating current directory as hidden (closes #14)
Fix URL encoding for file paths in fetch command (closes #13)
Fix errors.Is with errors.New() never matching in checker (closes #12)
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)