- Compact path display by factoring out common prefix and suffix
- Color-code path diffs in terminal output
- Polish path diff display with padded braces and root prefix absorption
- Render empty path diff as "." so suffix factoring kicks in for sub-paths
- Omit duration from completion message when under 1 second
- Truncate progress bar message to fit terminal width
- Gate release jobs on fmt/clippy/test and publish to crates.io from CI via Trusted Publishing
- Use cross-deploy helper for
just deploy-linux
- Exclude renamed/reflinked files from throughput summary
- Include file path in error output via anyhow context
- Skip recursive walk when moving directory to non-existent dest (single rename)
- Rename non-overlapping subdirectories wholesale during merge
- Skip
collect_total_sizeand progress bar for same-device moves
- Add crates.io install option, fix verbosity flag descriptions
- Populate GitHub Release notes from CHANGELOG.md
- Auto-create dest directory for multiple sources (dirs always; files with trailing
/) - Dim individual completion messages only in batch mode
- Batch summary with bold/italic progress labels
- Dim completion messages and show average transfer speed
- Batch progress bar showing total size and item count for multi-source operations
- Add
-fflag to cpx calls inmake_fixtures.shto allow re-running - Hide batch progress bar for single-source operations
- Remove
SourceKind::Mixed;validate_sourcesreturnsSourceKinddirectly - Replace
is_dirbool withSourceKindenum; consolidate message formatting intoCtxmethods - Inline single-caller methods and extract shared helpers from
run_batch - Use integer arithmetic in
human_speedto eliminate clippy cast suppressions
- Upgrade indicatif 0.17.11 -> 0.18.4
- Replace Makefile with justfile, add
just fixcommand - Add
deploy-linuxjust command for cross-compiling
- Replace scattered behavior sections with source/dest behavior matrix in README
- Fix stale CLAUDE.md references
- Force exit on double Ctrl-C
- Let current file finish on first Ctrl+C, abort on second
- Make Ctrl+C responsive during large file transfers
- Preserve empty directories and clean up incrementally during moves
- Use
_exit()for force Ctrl-C to avoid deadlock on cleanup
- Remove double buffering in
buffered_copy
- Use recursive DFS for directory merge/copy
- Introduce
Ctxstruct to bundle session-level state
- Add dry-run option (
-n/--dry-run) - Support
MODE_DRY_RUNenvironment variable for dry-run mode - Overwrite protection (
-fflag) - Ctrl+C handling
- Add
ensure_destfor destination resolution - Simplify progress handling and add batch validation
- Total bytes progress bar
- Total bytes progress tracking
- Redesign messages and progress bars
- Pass progress handler around instead of progress bars
- Sort files while merging directories
- Finish message display
- Simplify progress bar handling
- Use
AsRef<[Src]>for flexible source input
- Accept multiple source arguments
- Add
cpx(copy) binary - Fallback for any reflink error
- Split into
file,dir, andbinmodules with unit tests - Use
fs::renameCrossesDevices error instead of manual device comparison
- Colored error messages
- Different symbols for move and merge
- Logging support
- Skip steady tick when progress bar is hidden
- Only remove source directory if empty
- Graceful exit handling
- Handle case where dest parent cannot be determined
- Fix
mvx a bsingle file rename
Initial release: enhanced mv command with directory merging, progress bars, and quiet mode.