- Fixed type mismatch in disk space calculation (int64 casting)
- Created platform-specific disk space implementations:
* diskspace_unix.go (Linux, macOS, FreeBSD)
* diskspace_windows.go (Windows)
* diskspace_bsd.go (OpenBSD)
* diskspace_netbsd.go (NetBSD fallback)
- All 10 platforms now compile successfully:
✅ Linux (amd64, arm64, armv7)
✅ macOS (Intel, Apple Silicon)
✅ Windows (amd64, arm64)
✅ FreeBSD, OpenBSD, NetBSD
- Created internal/progress/estimator.go with ETAEstimator component
- Tracks elapsed time and estimates remaining time based on progress
- Enhanced Spinner and LineByLine indicators to display ETA info
- Integrated into BackupCluster and RestoreCluster functions
- Display format: 'Operation | X/Y (Z%) | Elapsed: Xm | ETA: ~Ym remaining'
- Preserves spinner animation while showing progress/time estimates
- Quick Win approach: no historical data storage, just current operation tracking
HIGH PRIORITY FIXES:
1. Remove unused progressCallback mechanism (dead code cleanup)
2. Add unit tests for restore package (formats, safety checks)
- Test coverage for archive format detection
- Test coverage for safety validation
- Added NullLogger for testing
3. Fix ignored errors in backup pipeline
- Handle StdoutPipe() errors properly
- Log stderr pipe errors
- Document CPU detection errors
IMPROVEMENTS:
- formats_test.go: 8 test functions, all passing
- safety_test.go: 6 test functions for validation
- logger/null.go: Test helper for unit tests
- Proper error handling in streaming compression
- Fixed indentation in stderr handling