Commit Graph

10 Commits

Author SHA1 Message Date
glitchySid
eeb07983cb refactor: modularize CLI and optimize cache metadata lookups
- Extract error handling, path validation, and handlers into separate modules
- Add CacheCheckResult to pre-fetch metadata and avoid double lookups
- Deprecate legacy cache methods in favor of optimized alternatives
- Enable tokio fs feature for async file operations
- Remove debug profile from release build
2026-01-08 23:18:39 +05:30
glitchySid
32d08a888f perf: replace SHA256+hex with Blake3 for cache key generation
- Switch from sha2 crate to blake3 for faster hashing (4-7x speedup)
- Use Blake3's built-in to_hex() instead of separate hex crate
- Remove hex and sha2 dependencies
- Eliminates 40% CPU bottleneck in generate_cache_key()
2026-01-08 20:33:44 +05:30
glitchySid
1f0547a210 Add custom categories feature
- Add support for user-defined custom categories in config.toml
- Update Config struct with categories field and default_categories() function
- Thread categories through GeminiClient and prompt builder
- Update AI prompts to use dynamic categories instead of hardcoded ones
- Add comprehensive documentation with examples for different use cases
- Update tests to support new categories field
- Maintain backward compatibility with default categories
- Update version from 1.0.3 to 1.0.4

Closes feature request for custom categories.
2025-12-31 13:01:15 +05:30
glitchySid
282e032086 Fix critical Windows compatibility issues and implement file batching
- Fix critical HOME variable bug that crashed on Windows
  * Replace hardcoded HOME env var with Config::get_data_dir()
  * Now uses cross-platform directories crate
  * Resolves to %APPDATA% on Windows, ~/.config on Linux/macOS

- Fix Unix-style path separators in display output
  * Use std::path::MAIN_SEPARATOR for OS-appropriate paths
  * Windows now shows backslashes, Unix shows forward slashes

- Implement batching for large file lists (100+ files)
  * Split file processing into batches of 50 files
  * Prevents network timeouts and API payload size issues
  * Added progress feedback for batch processing
  * Increased timeout from 30s to 120s per batch

- Bump version to 1.0.3

All tests passing, clippy clean, fully cross-platform compatible
2025-12-30 19:43:19 +05:30
glitchySid
6df8af91bb added recursive file reading using --recursive flag.
added a feature to scan subdirectory and organize the file structure
even further.
2025-12-29 18:47:50 +05:30
glitchySid
06eff6fcf8 style: Fix rustfmt formatting issues 2025-12-29 00:54:29 +05:30
glitchySid
a9dbaf36be test: Add comprehensive test suite for basic functionality
- Add 31 tests across files, config, and cache modules
- Test file operations (FileBatch, is_text_file, read_file_sample)
- Test configuration (serialization, API key validation, path expansion)
- Test caching (response retrieval, file change detection, eviction)
- Add tempfile dev dependency for test fixtures
- All tests passing with 100% success rate
2025-12-28 23:58:40 +05:30
glitchySid
868ef57498 fix: Add Windows compatibility for file operations
- Fix home directory detection using BaseDirs from directories crate
- Add cross-platform file moving with copy+delete fallback
- Replace Unix-specific HOME env var usage
- Handle cross-filesystem moves on Windows automatically
2025-12-28 23:54:53 +05:30
glitchySid
5a92ecdeb7 feat: Add comprehensive improvements - async optimization, caching, and error handling
- Add async optimization using futures for concurrent file processing
- Implement intelligent caching system with SHA256 file change detection
- Add comprehensive custom error handling for Gemini API responses
- Fix critical error handling issues throughout the codebase
- Replace fragile JSON parsing with proper struct-based deserialization
- Add automatic retry logic for rate limits and network issues
- Improve user experience with detailed error messages and progress feedback
- Add cache persistence and automatic cleanup of old entries
- Optimize performance for batch processing scenarios
2025-12-28 19:15:53 +05:30
glitchySid
3c038e3a3c first commit
a tool that automatically organize your messy folders
2025-12-20 15:32:38 +05:30