-
Notifications
You must be signed in to change notification settings - Fork 0
Dev mvp #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Dev mvp #3
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add dedicated --react-native (--rn) flag to scan and clean React Native-specific caches in TMPDIR: - Metro bundler cache (metro-*) - Haste map cache (haste-map-*) - RN packager cache (react-native-packager-cache-*) - React temp files (react-*) Implementation: - Add TypeReactNative to types.CleanTargetType - Create internal/scanner/react_native.go with ScanReactNative() - Update scanner.ScanAll() to include RN scanning (parallel) - Add --react-native and --rn flags to scan/clean commands - Add comprehensive tests in react_native_test.go Documentation: - Update README Overview with React Native - Add RN usage examples for scan and clean - Add RN section to Scanned Directories - Update Roadmap with completed RN support Typical space savings: 200MB-1.2GB per system Usage: dev-cleaner scan --rn dev-cleaner clean --rn --confirm dev-cleaner scan --rn --ios --android --node # Full RN project
Add comprehensive Flutter/Dart cleanup functionality following the Node.js scanner pattern. Features: - Scan global Flutter/Dart caches (~/.pub-cache, ~/.dart_tool, Flutter caches) - Recursively detect Flutter projects via pubspec.yaml marker - Clean build artifacts across 8 platforms (iOS, Android, macOS, Linux, Windows, Web) - Concurrent scanning with goroutines for optimal performance - Flutter blue UI styling (#02569B) with type breakdown - CLI flags: --flutter for scan and clean commands Expected disk recovery: 10-15GB typical, up to 50GB for heavy users Files changed: - pkg/types/types.go: Add TypeFlutter constant and IncludeFlutter field - internal/scanner/flutter.go: NEW - Core Flutter scanning logic (150 lines) - internal/scanner/scanner.go: Integrate Flutter into ScanAll() - internal/ui/formatter.go: Add Flutter color and styling - cmd/root/scan.go: Add --flutter flag - cmd/root/clean.go: Add --flutter flag - README.md: Document Flutter support Follows KISS, YAGNI, DRY principles. All safety features inherited from existing scanners.
…imation, and version display
Implement three major TUI improvements to enhance user experience:
1. **Unified Status Bar Across All States**
- Dynamic left/center/right layout with auto-width adjustment
- State-specific information display (scanning progress, selected items, time tracking)
- Real-time updates showing session duration and operation time
- Consistent styling with primary purple color scheme
2. **Animated Scanning Progress**
- StateScanning phase with package-manager-style loading animation
- Category-by-category scanning display (✓ Complete, ⠋ Scanning..., ○ Pending)
- 600ms interval progression through Xcode, Android, Node.js, Flutter
- Smooth transition to StateSelecting after completion
3. **Version Display in Title**
- Show application version in TUI title bar
- Format: "🧹 Mac Dev Cleaner v{version}"
- Pass version as parameter to avoid import cycles
- Maintain [DRY-RUN] indicator when applicable
**Technical Implementation:**
- Added Model fields: startTime, deleteStart, scanningCategories, scanComplete, currentScanning, version
- Created renderStatusBar() method handling 5 different states
- Implemented tickScanning() for timed scanning progression
- Fixed import cycle by passing version as parameter through tui.Run()
- Updated both scan.go and clean.go to pass Version parameter
**Status Bar Sections:**
- Left: State indicator (🔍 Scanning, 📋 Select items, ⚠️ Confirm, 🗑️ Deleting, ✅ Done)
- Center: Context info (progress %, selected count, operation status)
- Right: Hints (keyboard shortcuts) or elapsed time
**Files Modified:**
- internal/tui/tui.go: Core TUI enhancements (150+ lines added)
- cmd/root/scan.go: Pass version to tui.Run()
- cmd/root/clean.go: Pass version to tui.Run()
Tested with real Flutter projects: Successfully scanned 21 items (32.4 GB) including 10 Flutter items (7.0 GB)
…anOptions` with new types, and enhance `scan` command documentation and TUI features.
Add comprehensive support for Docker and Java/Kotlin ecosystems: Scanner Implementation: - Create docker.go scanner with CLI integration (docker system df) - Create java.go scanner for Maven/Gradle caches and build artifacts - Handle Docker pseudo-paths (docker:images, docker:containers, etc.) - Integrate all Phase 1 + Phase 2 scanners in parallel execution Cleaner Enhancements: - Add cleanDocker() method using Docker CLI commands (prune operations) - Update safety validation to allow Docker pseudo-paths - Support special cleanup for Docker resources via CLI CLI Updates: - Add flags: --python, --rust, --go, --homebrew, --docker, --java - Update scan.go and clean.go with new ecosystem flags - Update help documentation with all 10 ecosystems TUI Improvements: - Add category detection for Python, Rust, Go, Homebrew, Docker, Java - Add color badges: Python (blue), Rust (orange), Go (cyan), Homebrew (yellow), Docker (blue), Java (orange) - Update rescanItems() to use DefaultScanOptions() for all ecosystems Total ecosystems supported: 10 (Xcode, Android, Node.js, Flutter, Python, Rust, Go, Homebrew, Docker, Java) Potential disk reclaim: 30-100+ GB per developer
README.md: - Add 6 new ecosystems to Overview (Python, Rust, Go, Homebrew, Docker, Java) - Add scan examples for all 10 ecosystems - Add detailed Scanned Directories sections for new ecosystems - Update Roadmap to reflect TUI completion TUI Help Screen: - Add "Supported Ecosystems" section with emoji icons - Display all 10 ecosystems in organized layout - Add tip about disk space reclaim potential (30-100+ GB)
…, Rust, Homebrew, Docker, Java/Kotlin)
- Add 7 new scanner types: Flutter, Go, Python, Rust, Homebrew, Docker, Java/Kotlin - Total 10 ecosystem scanners now supported (iOS, Android, Node + 7 new) - Enhanced TUI with new scanner types - All tests passing, 35 items scannable (43.2 GB) - Version bumped to 1.0.1 - Documentation archived and updated
Merged feat/wails-v2-migration branch into dev-mvp, combining: - Wails v2 GUI framework with React frontend - Multi-ecosystem scanner support (Flutter, Python, Rust, Go, Homebrew, Docker, Java) - ReactNative scanner from GUI branch Resolved conflicts in internal/scanner/scanner.go by keeping all ecosystem scanners. Auto-generated TypeScript bindings updated to reflect merged ScanOptions.
- Changed main path from ./main.go (Wails GUI) to ./cmd/dev-cleaner/main.go (CLI) - This fixes v1.0.1 release which had no binaries due to build failure - GUI entry point requires CGO and Wails build, not compatible with GoReleaser - Future: Will create separate workflow for GUI releases
- Create INSTALL.md with comprehensive installation guide - Add GitHub Actions workflow to auto-update docs on release - Support 4 platforms: macOS ARM/Intel, Linux ARM/AMD64 - Auto-updates version numbers and download links - Triggered on release publish or manual dispatch
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.