Make log and export file paths configurable via MOLE_STATE_DIR.
Add optional MOLE_DETAILED_EXPORT_FILE for per-item cleanup reporting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move Settings and About from standalone windows to sidebar entries
that display in the detail panel like other tabs. Remove redundant
Settings scene and About window from AtlasApp. Skip searchable
modifier for these routes and fix empty accessibility hint for About.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace placeholder SF Symbols with actual brand assets: avatar photo,
WeChat/Xiaohongshu/X/Discord SVG icons. Merge social links into author
card with horizontal badge layout. Update copy and localization keys.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- GitHub link → https://github.com/CSZHK/CleanMyPc
- Author role → atomstorm.ai Founder (ZH: 技术高P)
- Bio → "Built with AI Coding" instead of "from 0 to 1"
- Open-source project name → CleanMyPc
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add AtlasFeaturesAbout package dependency to project.pbxproj so xcodebuild
can resolve the module. Handle .about case in AtlasAppCommands shortcutKey
and AtlasAppModel refreshCurrentRoute to satisfy exhaustive switch checks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New sidebar tab (⌘7) showing author info, AI coding philosophy quote,
AtomStorm Studio product link, GitHub open-source link, and social channels.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When Mole is called from GUI applications (e.g., SwiftUI apps), the
request_sudo_access() function would fail with '/dev/tty: Device not
configured' error because /dev/tty is not available in non-TTY contexts.
This commit adds automatic detection of the runtime environment and uses
macOS native password dialog (via osascript) when running in GUI mode,
while preserving all existing TTY behavior including Touch ID support.
Changes:
- Detect TTY availability before attempting terminal-based authentication
- Use osascript to display native password dialog in GUI mode
- Maintain backward compatibility with all terminal-based workflows
- Ensure secure password handling (unset after use)
Fixes commands like 'mole clean', 'mole optimize', 'mole purge' when
invoked from GUI applications.
* feat: add --json flag to analyze command
* feat: implement JSON output mode for analyze
* refactor: rename jsonOutput flag to jsonMode to avoid conflict
Network rate calculation requires two samples to compute the delta.
In JSON mode, the collector was only called once, causing the network
field to always return nil.
This change adds a second collection call with a 1-second interval,
allowing the network rates to be calculated properly.
- Replace inline dynamic formatting with shared bytes_to_human_kb()
- Apply to both clean and purge commands
- Simplify movie comparison with integer arithmetic
- Use array slicing instead of manual loop for splitting dirs
- Remove redundant early returns with duplicated safe_clean calls
- Consolidate cache/logs cleanup to single location at function end
Add --json command-line flag to mo status that outputs system metrics
in JSON format without requiring a TTY environment.
This enables:
- Integration with GUI applications (e.g., native macOS apps)
- Use in automation scripts and monitoring systems
- Piping output to tools like jq for data extraction
- Recording metrics for analysis
Implementation:
- Add JSON struct tags to all metric types
- Add --json flag using Go's flag package
- Implement runJSONMode() for one-time metric collection
- Refactor main() to support both TUI and JSON modes
- Maintain 100% backward compatibility (default TUI unchanged)
Testing:
- All 454 existing tests pass
- JSON output validated with jq and python json.tool
- Pipeline and redirection work correctly
- No breaking changes to existing functionality
- Fix undefined ICON_SKIP, use ICON_SUCCESS instead
- Reduce code from 46 to 27 lines with early return pattern
- Consistent styling with other whitelist skip messages
- Add whitelist checking to clean_dev_go() function
- Check both GOCACHE and GOMODCACHE before cleaning
- Show appropriate messages for protected caches
- Fix whitelist pattern from ~/go/pkg/mod/cache/* to ~/go/pkg/mod/*
- Split Go cache into separate build and module entries
Fixes#521