Add comprehensive dry-run functionality to the Rust implementation that allows
users to test their configuration without making any changes to CouchDB:
- Added --dry-run/-n command line flag with clap argument parsing
- Extended CommandLineArgs struct with dry_run field
- Updated bash completion script to include new flag
- Comprehensive dry-run logic throughout sync coordinator:
- Skip database creation with informative logging
- Skip sync metadata retrieval and use config fallback
- Skip deleted message handling in sync mode
- Skip message and attachment storage with detailed simulation
- Skip sync metadata updates with summary information
- Enhanced summary output to clearly indicate dry-run vs normal mode
- Updated all tests to include new dry_run field
- Maintains all IMAP operations for realistic mail discovery testing
This brings the Rust implementation to feature parity with the Go version
for safe configuration testing as identified in ANALYSIS.md.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive dry-run functionality that allows users to test their
configuration without making any changes to CouchDB. The feature includes:
- New --dry-run/-n command line flag with help and completion support
- Skips all CouchDB write operations while preserving IMAP operations
- Provides detailed logging of what would be done in normal mode
- Shows sample message data and metadata updates that would occur
- Maintains all existing functionality when dry-run is disabled
This addresses the critical usability need identified in ANALYSIS.md for
safe configuration testing before making database changes.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>