smv 0.4.2

Smart Move - An enhanced mv command with transformation capabilities
Documentation
# Feature Branch Context: Directory Organization

## Completed Work

We've implemented directory organization features for SMV with the following components:

1. **Core Modules**:
   - `sort.rs`: Implements `group_by_basename` for organizing files into directories
   - `unsort.rs`: Implements `flatten_directory` and `remove_empty_dirs` for flattening directory structures

2. **CLI Integration**:
   - Added `--group` flag for grouping files by basename
   - Added `--flatten` flag for flattening directory structures (includes removing empty directories)
   - Implemented handler functions in `main.rs`

3. **Documentation**:
   - Updated README.md with new features and usage examples
   - Created an intent-based CLI design document (docs/intent-based-cli-design.md)

4. **Tests**:
   - Added tests for the new functionality
   - Added tempfile as a development dependency

5. **Version Update**:
   - Bumped version to 0.2.0 in Cargo.toml

## Branch Status Issue

We discovered a potential issue with our branch structure:

1. Our feature branch `feature/sort-unsort-integration` was created from a hotfix branch `fix/snake-case-spaces` instead of from `main` or `dev`.

2. There are uncommitted changes in several files that might be related to the hotfix branch:
   ```
   .gitignore
   src/history.rs
   src/repl.rs
   src/transformers.rs
   src/ui/input/commands.rs
   ... (20 files total)
   ```

3. There are also untracked files:
   ```
   .github/workflows/mdbook.yml
   docs/book.toml
   docs/src/
   docs/theme/
   inspiration/
   ```

## Next Steps

In the next development session, we need to:

1. Decide on a branching strategy:
   - Merge to `fix/snake-case-spaces` first, then to `main`?
   - Rebase onto `main` to get a cleaner history?
   - Create a new branch directly from `main` and cherry-pick our changes?

2. Determine what to do with uncommitted changes:
   - Review them to see if they're related to our feature
   - Decide whether to commit, stash, or discard them

3. Complete the release process:
   - Create a tag for the new version
   - Push the tag and branch to GitHub
   - Create a GitHub release
   - Publish to crates.io

## Command Summary

For reference, we've implemented two main commands:

1. `--group`: Groups files by basename into directories
   ```bash
   smv --group /path/to/files/
   ```

2. `--flatten`: Moves files to the root directory and removes empty directories
   ```bash
   smv --flatten /path/to/nested/folders/
   ```

Both commands respect the `--preview` flag to show changes without applying them.