Commit Graph

1814 Commits

Author SHA1 Message Date
zhukang
d87b2fdb6d chore: tighten gitignore for native build artifacts 2026-03-11 15:04:06 +08:00
zhukang
b7087c706e feat(features): improve responsiveness and empty states across feature views
Use adaptive grid columns and atlasContentWidth for responsive layouts
in Overview, Apps, History, and SmartClean views. Add action buttons
to empty states. Use flexible height for Apps split view. Refine
SmartClean scan/plan UI with brand-tinted progress and status chips.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:57:41 +08:00
zhukang
7da436a220 fix: consolidate model switch cases, brand-tint controls, fix avatar asset
Merge settings/about cases in refreshCurrentRoute. Refactor TaskCenterView
to use domain-level icon/tone helpers and atlasPrimary button style.
Brand-tint toggle and stepper in SettingsFeatureView. Remove redundant
scale from avatar image asset.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:57:31 +08:00
zhukang
f370dc78cb chore: regenerate Xcode project with AtlasFeaturesAbout dependency
Update project.yml and pbxproj to properly register AtlasFeaturesAbout
package product. Add shared workspace and scheme data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:57:22 +08:00
zhukang
8d56a0e92c feat(design-system): adaptive grid layout, content width env, and UI polish
Fix AtlasSpacing.screenH value (24 -> 28). Add adaptiveMetricColumns
for responsive grid layouts and atlasContentWidth environment key.
Enhance AtlasEmptyState with optional action button. Brand-tint
ProgressView controls. Add AtlasPresentationHelpers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:57:13 +08:00
zhukang
7b75e84218 feat(domain): add SidebarSection grouping and sidebar localization strings
Add SidebarSection enum to AtlasRoute with core/manage groupings,
isSidebarRoute filter, and sidebarSection lookup. Add en/zh-Hans
strings for sidebar sections, about window title, and about command.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:57:02 +08:00
zhukang
3a62db7d74 refactor(mole): use MOLE_STATE_DIR env var and add detailed export support
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>
2026-03-10 21:56:53 +08:00
zhukang
ee854d85dc chore: add Swift/Xcode and build artifacts to .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:56:45 +08:00
zhukang
977ab9c047 feat(sidebar): add Settings and About as inline detail routes
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>
2026-03-10 21:54:09 +08:00
zhukang
c435b5e301 feat(about): add real avatar and brand SVG icons for social badges
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>
2026-03-10 20:58:36 +08:00
zhukang
7a1f8e3d56 fix: update About tab copy — GitHub URL, author role, and bio wording
- 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>
2026-03-10 20:35:03 +08:00
zhukang
3466a99206 fix: register AtlasFeaturesAbout in Xcode project and fix exhaustive switches
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>
2026-03-10 20:27:26 +08:00
zhukang
0346e47b46 feat: add About tab with developer profile and product links
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>
2026-03-10 20:22:08 +08:00
zhukang
e37927b143 feat: improve Atlas narrow window responsiveness 2026-03-10 18:39:04 +08:00
zhukang
994e63f0b3 feat: add Atlas native app UX overhaul 2026-03-10 17:09:35 +08:00
tw93
0fabc6feec fix(shell): suppress SC2016 in timeout perl fallback 2026-03-06 14:17:42 +08:00
Tw93
92ad46a396 fix(clean): harden project cache scans
Refs #541
2026-03-06 07:49:44 +08:00
Tw93
7e69a4eb71 clean orphaned Claude VM bundle
Fixes #537
2026-03-06 07:36:08 +08:00
Tw93
423c424f52 fix: gate main menu update action on update availability
Follow-up to #540.
2026-03-06 07:19:10 +08:00
Oleksandr Redko
603df79a01 refactor: fix modernize lint issues (#539) 2026-03-05 20:46:12 +08:00
tw93
fc006e32be remove startup intro animation from main menu 2026-03-05 19:13:20 +08:00
Tw93
a4890764d3 chore: auto format code 2026-03-05 09:51:52 +00:00
tw93
c3ea57d301 Resolve merge conflict in mole update helpers 2026-03-05 17:50:32 +08:00
tw93
f91975e5be Refine update/uninstall UX and stabilize brew flows 2026-03-05 17:46:05 +08:00
Tw93
6ce1ea17d8 chore: auto format code 2026-03-05 07:31:50 +00:00
tw93
9ee425766d chore: Update Mole version to 1.29.0 2026-03-05 15:31:11 +08:00
tw93
2578d0a920 chore: Bump version to 1.29.0 2026-03-05 15:16:55 +08:00
tw93
9fea75af25 Merge branch 'main' of https://github.com/tw93/Mole 2026-03-05 13:58:25 +08:00
tw93
8e4b8a5e0d Improve update checks and cleanup UX, add timeout regressions 2026-03-05 12:00:07 +08:00
Noah Qin
a9d7c3912f fix(sudo): add GUI mode support for non-TTY environments (#536)
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.
2026-03-05 09:35:26 +08:00
tw93
fbee8da9f7 feat: add Helium Browser cleanup support
Add cleanup support for Helium Browser (Chromium-based) on macOS.

Helium paths added:
- ~/Library/Caches/net.imput.helium/*
- ~/Library/Application Support/net.imput.helium/*/GPUCache/*
- ~/Library/Application Support/net.imput.helium/component_crx_cache/*
- ~/Library/Application Support/net.imput.helium/extensions_crx_cache/*
- ~/Library/Application Support/net.imput.helium/GrShaderCache/*
- ~/Library/Application Support/net.imput.helium/GraphiteDawnCache/*
- ~/Library/Application Support/net.imput.helium/ShaderCache/*
- ~/Library/Application Support/net.imput.helium/*/Application Cache/*

Also added "Helium" to the browser process detection list in optimize/tasks.sh.

Closes #534
2026-03-04 19:40:35 +08:00
tw93
ff69504f89 fix: harden CI test stability and status collector resilience 2026-03-04 16:49:20 +08:00
Noah Qin
c88691c2c8 feat: add --json flag to analyze command for non-TTY environments (#533)
* feat: add --json flag to analyze command

* feat: implement JSON output mode for analyze

* refactor: rename jsonOutput flag to jsonMode to avoid conflict
2026-03-04 16:22:09 +08:00
github-actions[bot]
d35f6d0665 chore: update contributors [skip ci] 2026-03-03 18:59:46 +00:00
Noah Qin
fbaf5e7c91 fix(status): enable network data in JSON mode (#532)
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.
2026-03-04 02:59:01 +08:00
github-actions[bot]
68430737cf chore: update contributors [skip ci] 2026-03-03 08:58:53 +00:00
tw93
d12cde5405 refactor: use bytes_to_human_kb for dynamic size formatting
- Replace inline dynamic formatting with shared bytes_to_human_kb()
- Apply to both clean and purge commands
- Simplify movie comparison with integer arithmetic
2026-03-03 16:58:31 +08:00
tw93
814b3680b9 feat(version): show commit hash for nightly installs (#517)
Display commit hash in parentheses after "Nightly" channel label
to help users identify exact version when testing nightly builds.
2026-03-03 16:58:31 +08:00
github-actions[bot]
c8ed94698d chore: update contributors [skip ci] 2026-03-03 08:30:16 +00:00
tw93
8f86659032 docs: remove dev branch workflow from contributing guide 2026-03-03 16:29:51 +08:00
tw93
25cba0cf38 refactor(clean): simplify Xcode DeviceSupport cleanup logic
- 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
2026-03-03 16:16:52 +08:00
tw93
b663974f76 Merge branch 'dev' 2026-03-03 16:06:42 +08:00
github-actions[bot]
7e19b2673b chore: update contributors [skip ci] 2026-03-03 08:06:16 +00:00
Noah Qin
2a4eaf007b feat(status): add --json flag for programmatic access (#529)
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
2026-03-03 16:05:55 +08:00
github-actions[bot]
b6fd68009f chore: update contributors [skip ci] 2026-03-03 08:05:54 +00:00
Nour
607073c333 feat(clean): clean old Xcode DeviceSupport versions instead of just their caches (#519) 2026-03-03 16:05:29 +08:00
tw93
677077818e refactor(clean): simplify Go cache whitelist logic
- 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
2026-03-03 16:02:39 +08:00
github-actions[bot]
ab35f2e8f1 chore: update contributors [skip ci] 2026-03-03 07:58:03 +00:00
Noah Qin
5d4c304797 fix(clean): respect whitelist when cleaning Go caches (#530)
- 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
2026-03-03 15:57:45 +08:00
tw93
66ba1889c6 fix: correct missing $ in color variable reference
Fix typo from PR #523: {NC} → ${NC}
2026-03-03 15:57:18 +08:00