# Project Roadmap
A prioritized list of improvements, refactoring, and new features to be implemented within the v0.3.x lifecycle.
## Code Quality & Stability
- [x] **Unified Traversal Logic**
- Extract directory walking and regex exclusion logic from `copy.rs`, `move.rs`, and `remove.rs` into a shared module.
- *Goal*: Reduce code duplication and ensure consistent behavior across commands.
- [ ] **Centralized Signal Handling**
- Create a global implementation to manage SIGINT (Ctrl+C) and SIGTERM.
- Ensure robust cleanup of partially copied/moved files upon interruption.
- [x] **Custom Error Types**
- Replace generic `anyhow::Result` with specific `thiserror` enums (e.g., `PermissionDenied`, `TargetExists`).
- Provide actionable user tips based on error types.
## Performance & Concurrency
- [ ] **Parallel File Operations**
- Implement a concurrency model (e.g., Worker Pool or Async Stream) to process multiple small files simultaneously.
- Limit concurrency usage based on system resources.
- *Goal*: Improve performance for directories with large numbers of small files.
- [x] **Reflink / Copy-on-Write (CoW)**
- Implement support for `reflink` on compatible file systems (APFS, Btrfs, XFS).
- *Goal*: Enable instantaneous file copies without additional disk usage.
## User Experience & Safety
- [ ] **Trash / Recycle Bin Support**
- Update `remove` command to move files to the system Trash by default.
- Add `--permanent` flag for permanent deletion.
- [ ] **Smart Conflict Resolution**
- Enhance the overwrite prompt to support:
- `[S]kip`: Skip the current file.
- `[R]ename`: Auto-rename the target.
- `[A]pply to all`: Apply the choice to all subsequent conflicts.
- [x] **Resume & Verification**
- Implement `--verify` flag for hash-based integrity checking.
- Support resumable copy operations.
- [ ] **Wake Lock Support**
- Prevent system sleep during long running operations (copy/move).
- *Reference*: `keepawake` crate used in `mc-cli`.
- [ ] **IO Throttling**
- Add explicit bandwidth limiting flags (e.g., `--bwlimit`).
- *Reference*: `bcmr` has `TestMode` internal throttling but no user-facing flag for it yet.