# Vaultik 1.0 TODO Linear list of tasks to complete before 1.0 release. ## Restore Command 1. Write integration tests for restore command ## Daemon Mode 1. Implement inotify file watcher for Linux - Watch source directories for changes - Track dirty paths in memory 1. Implement FSEvents watcher for macOS - Watch source directories for changes - Track dirty paths in memory 1. Implement backup scheduler in daemon mode - Respect backup_interval config - Trigger backup when dirty paths exist and interval elapsed - Implement full_scan_interval for periodic full scans 1. Add proper signal handling for daemon - Graceful shutdown on SIGTERM/SIGINT - Complete in-progress backup before exit 1. Write tests for daemon mode ## CLI Polish 1. Add `--quiet` flag to all commands - Suppress non-error output - Useful for scripting 1. Add `--json` output flag to more commands - `snapshot verify` - output verification results as JSON - `snapshot remove` - output deletion stats as JSON - `prune` - output pruning stats as JSON 1. Improve error messages throughout - Ensure all errors include actionable context - Add suggestions for common issues ## Testing 1. Write end-to-end integration test - Create backup - Verify backup - Restore backup - Compare restored files to originals 1. Add tests for edge cases - Empty directories - Symlinks - Special characters in filenames - Very large files (multi-GB) - Many small files (100k+) 1. Add tests for error conditions - Network failures during upload - Disk full during restore - Corrupted blobs - Missing blobs ## Documentation 1. Add man page or --help improvements - Detailed help for each command - Examples in help output ## Performance 1. Profile and optimize restore performance - Parallel blob downloads - Streaming decompression/decryption - Efficient chunk reassembly 1. Add bandwidth limiting option - `--bwlimit` flag for upload/download speed limiting ## Security 1. Audit encryption implementation - Verify age encryption is used correctly - Ensure no plaintext leaks in logs or errors 1. Add config file permission check - Warn if config file is world-readable (contains secrets) 1. Secure memory handling for secrets - Clear age_secret_key from memory after use ## Final Polish 1. Ensure version is set correctly in releases 1. Create release process - Binary releases for supported platforms - Checksums for binaries - Release notes template 1. Final code review - Remove debug statements - Ensure consistent code style 1. Tag and release v1.0.0