Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
939 commits
Select commit Hold shift + click to select a range
44685d3
feat: Improve CJK character width calculation, enhance SQLite vacuum …
tw93 Dec 28, 2025
50e47a3
chore: bump version to 1.15.3 and update the security audit report fo…
tw93 Dec 28, 2025
87d2557
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 28, 2025
7be21f4
chore: update binaries for V1.15.3
tw93 Dec 28, 2025
6beca2f
fix: improve robustness of UI output commands by adding `|| true`
tw93 Dec 28, 2025
3f7fbbf
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 28, 2025
63b915b
chore: update binaries for V1.15.4
tw93 Dec 28, 2025
62c783d
Fix macOS update detection timeout
amanthanvi Dec 28, 2025
014e15f
Add macOS update check edge case tests
amanthanvi Dec 28, 2025
9239571
Tighten macOS update check and add empty-output test
amanthanvi Dec 28, 2025
b67204f
feat: remove SQLite vacuum optimization, enhance CJK/emoji width calc…
tw93 Dec 28, 2025
55a0aa5
chore: update binaries for V1.15.5
tw93 Dec 28, 2025
9918e1a
Fix macOS update detection timeout (#182)
amanthanvi Dec 29, 2025
f84b019
Merge branch 'pr-182'
tw93 Dec 29, 2025
5f7df62
enhance macOS update check with configurable timeout and debug logging
tw93 Dec 29, 2025
16de9d1
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 29, 2025
694c55f
fix: implement layered error tolerance and accurate cleanup reportin…
tw93 Dec 29, 2025
beaaa98
Tweak macOS update detection and bump version
tw93 Dec 29, 2025
2a69303
Align Touch ID enable output with log_success
tw93 Dec 29, 2025
492f3f7
Adjust uninstall menu footer controls order
tw93 Dec 29, 2025
b852e91
Optimize security fix prompts and auto-fix flow
tw93 Dec 29, 2025
a9e4c7c
Optimize security fix prompts and auto-fix flow
tw93 Dec 29, 2025
8666c74
workflow
tw93 Dec 29, 2025
ae3889e
Simplify the content deleted by the system
tw93 Dec 29, 2025
56c5fe0
Remove some useless comments
tw93 Dec 29, 2025
b787c78
chore: update binaries for V1.15.6
tw93 Dec 29, 2025
c1e7290
1.15.7 Repair and update check
tw93 Dec 29, 2025
9691b0f
chore: update binaries for V1.15.7
tw93 Dec 29, 2025
c591022
Fix the problems of remove and reinstall
tw93 Dec 29, 2025
88ecdb5
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 29, 2025
2b30a24
chore: update binaries for V1.15.8
tw93 Dec 29, 2025
600afbb
security(ci): pin mislav/bump-homebrew-formula-action to SHA (#187)
amanthanvi Dec 29, 2025
7af6b39
chore(ci): pin actions to SHAs and add dependabot for gomod
tw93 Dec 29, 2025
db22074
chore(deps): bump actions/setup-go from 5.6.0 to 6.1.0 (#194)
dependabot[bot] Dec 29, 2025
e3cea02
chore(deps): bump golang.org/x/sync from 0.18.0 to 0.19.0 (#193)
dependabot[bot] Dec 29, 2025
afc0f7b
chore(deps): bump actions/checkout from 4.3.1 to 6.0.1 (#192)
dependabot[bot] Dec 29, 2025
69d9256
chore(deps): bump actions/cache from 4.3.0 to 5.0.1 (#191)
dependabot[bot] Dec 29, 2025
44e91be
feat: add new system optimization tasks and implement orphaned startu…
tw93 Dec 29, 2025
5805488
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 29, 2025
c8b2e36
chore: auto format code
tw93 Dec 29, 2025
376d7fb
remove
tw93 Dec 29, 2025
657d7e7
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 29, 2025
7e62ed1
feat: add configurable purge paths (#197)
andmev Dec 29, 2025
ad43c92
chore: auto format code
tw93 Dec 29, 2025
bf36d3d
chore: polish PR #197 and add Xcode Archives whitelist option
tw93 Dec 29, 2025
fefb831
docs: simplify purge config section with collapsible details
tw93 Dec 29, 2025
bb83362
feat(purge): add --paths option to configure scan directories
tw93 Dec 29, 2025
6328bf1
feat(purge): smart project discovery and optimization
tw93 Dec 29, 2025
fd95e2f
chore: auto format code
tw93 Dec 29, 2025
7485af0
chore: Remove `--force-rescan` option from `uninstall` command and sc…
tw93 Dec 29, 2025
a95355c
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 29, 2025
af61748
release binaries via GH releases and update installer fallback
tw93 Dec 29, 2025
2528169
chore: auto format code
tw93 Dec 29, 2025
3eccb7c
feat: improve project clean module's common utility sourcing and bump…
tw93 Dec 29, 2025
ac73c0c
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 29, 2025
3c38790
feat: bump version to 1.16.0 and normalize release tags in the instal…
tw93 Dec 29, 2025
0e6b595
chore: Bump version to 1.16.1 and refactor CI/CD to build separate ma…
tw93 Dec 29, 2025
c94e26d
ci: Update macOS runners to `macos-latest` in release workflow.
tw93 Dec 29, 2025
c962b6f
update install V tag
tw93 Dec 29, 2025
3fd1dbe
fix: resolve version tag normalization bug (VV prefix) and improve ne…
tw93 Dec 29, 2025
a733728
feat: package binaries into tar.gz for Homebrew resource
tw93 Dec 29, 2025
02eaf3d
chore(deps): bump actions/upload-artifact from 4.6.0 to 6.0.0 (#200)
dependabot[bot] Dec 29, 2025
21a921c
chore(deps): bump actions/download-artifact from 4.1.8 to 7.0.0 (#201)
dependabot[bot] Dec 29, 2025
34d202e
fix: resolve syntax error in size calculation (Issue #203)
tw93 Dec 30, 2025
184aab5
feat: add --dry-run support for mo optimize
tw93 Dec 30, 2025
73f3d43
feat: improve mo purge UX with pagination and smart project detection
tw93 Dec 30, 2025
8711c5b
feat: add cloud storage protection and bump version to 1.16.2
tw93 Dec 30, 2025
91351d9
docs: clarify comment for 1Password sync helpers
tw93 Dec 30, 2025
dab8136
chore: auto format code
tw93 Dec 30, 2025
f5dad04
refactor: improve pagination robustness and reduce code duplication
tw93 Dec 30, 2025
3ba406b
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 30, 2025
1c4b033
refactor: rename total_size_bytes to total_size_kb in clean.sh for cl…
tw93 Dec 30, 2025
08aec02
fix: ensure 0KB files or du failures are still cleaned (potential und…
tw93 Dec 30, 2025
7f431e7
docs: brew official formula
zeldrisho Dec 30, 2025
91935dc
Merge pull request #208 from zeldrisho/brew
tw93 Dec 30, 2025
f0c9683
feat: Add new system optimizations, refine existing tasks with safety…
tw93 Dec 30, 2025
7eb26cc
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 30, 2025
8e45da9
chore: auto format code
tw93 Dec 30, 2025
a3cbf52
feat: add automatic Homebrew Core formula update support
tw93 Dec 30, 2025
af93011
feat: add automatic Homebrew Core formula update support
tw93 Dec 30, 2025
e6a0b58
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 30, 2025
1ee5ab8
feat: add automatic Homebrew Core formula update support
tw93 Dec 30, 2025
b156bf8
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 30, 2025
389cae2
update
tw93 Dec 30, 2025
41ce597
fix: improve CI stability and Bluetooth audio detection
tw93 Dec 30, 2025
6c1fcd2
feat: optimize `clean` operation performance by pre-expanding whiteli…
tw93 Dec 30, 2025
5f6448b
perf: Increase section tracking overhead test threshold and ensure `n…
tw93 Dec 30, 2025
fcde129
fix: expand default whitelist patterns for accurate comparison and li…
tw93 Dec 30, 2025
bb49ec3
fix: Improve shell script robustness by adding variable validation an…
tw93 Dec 30, 2025
a7b071e
refactor: improve database optimization spinner handling and network …
tw93 Dec 30, 2025
fff27a7
1.17.0
tw93 Dec 30, 2025
5d6a464
enhance raycast quick launcher setup script
thijsvanhal Dec 30, 2025
9e10ab2
Merge pull request #211 from thijsvanhal/main
tw93 Dec 30, 2025
e2c1b62
chore: auto format code
tw93 Dec 30, 2025
98afaab
fix: make raycast setup safe in non-interactive
tw93 Dec 30, 2025
f33304a
chore: auto format code
tw93 Dec 30, 2025
bd1c37d
fix: reduce raycast setup prompts after first run
tw93 Dec 30, 2025
13e735d
fix: replace safe_sudo with sudo for local snapshot removal
tw93 Dec 30, 2025
6cf6a99
Fix: Improve Homebrew uninstallation feedback in 'mo remove'
tw93 Dec 30, 2025
7247ded
fix: prompt before cleaning local snapshots and keep latest
tw93 Dec 31, 2025
8d935c6
feat: Improve `clean_local_snapshots` robustness and simplify Raycast…
tw93 Dec 31, 2025
97ed11c
refactor: `clean_local_snapshots` now uses an array for snapshot proc…
tw93 Dec 31, 2025
aca0f66
chore: auto format code
tw93 Dec 31, 2025
b5b0946
feat: add spinner feedback to optimization tasks, enhance app discove…
tw93 Dec 31, 2025
884a095
Merge branch 'main' of github.com:tw93/Mole
tw93 Dec 31, 2025
31b8821
feat: Add versioned and edge installation support to install.sh and u…
tw93 Dec 31, 2025
0ad1573
fix: Ensure `set --` correctly clears positional parameters when no a…
tw93 Dec 31, 2025
01eff63
fix: safely handle sparse/empty arrays with set -u in install.sh
tw93 Dec 31, 2025
1f7a8b1
docs: streamline installation instructions by moving script method to…
tw93 Dec 31, 2025
bb14242
docs: clarify installation method headers in README
tw93 Dec 31, 2025
e30dfd3
feat: add `--update` flag to `install.sh` to set update action
tw93 Dec 31, 2025
108563e
refactor: enhance install script robustness with improved error handl…
tw93 Dec 31, 2025
8ac59da
chore: auto format code
tw93 Dec 31, 2025
9aa569c
feat: Enhance clean, optimize, analyze, and status commands, and upda…
tw93 Dec 31, 2025
1e8ff30
chore: auto format code
tw93 Dec 31, 2025
592f02e
feat: overhaul quality checks and expand test suite for clean and opt…
tw93 Dec 31, 2025
fdcaa7f
Fix workflow errors
tw93 Dec 31, 2025
2bede99
fix: enhance local snapshot warning and improve disk space calculatio…
tw93 Jan 1, 2026
f53d440
feat: Add Chrome old versions cleanup and whitelist Poetry virtualenv…
tw93 Jan 1, 2026
40cfc36
feat: add support for cleaning up Zig projects
LmanTW Jan 1, 2026
b66102b
Merge pull request #226 from LmanTW/main
tw93 Jan 1, 2026
b64f7df
feat: add Zig build artifacts and project files to cleanup script.
tw93 Jan 1, 2026
7d125e1
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 1, 2026
553bd47
feat: add shell completion script
fte-jjmartres Jan 1, 2026
9e84883
fix: skip Rails vendor during purge
jalen0x Jan 1, 2026
70f427d
Merge PR #229: Skip Rails vendor during purge
tw93 Jan 1, 2026
a671c63
feat: smart vendor directory handling in purge
tw93 Jan 1, 2026
64a9946
feat: add unit tests for project root detection and vendor directory …
tw93 Jan 1, 2026
23ffafc
feat: add Microsoft Edge old version cleanup and improve vendor direc…
tw93 Jan 1, 2026
6c93f9a
🐛 fix(code formatting): use spaces not tabs
fte-jjmartres Jan 1, 2026
9a055ec
Merge pull request #228 from jjmartres/feature/shell-completion
tw93 Jan 2, 2026
88f434f
feat: Add browser version cleanup tests, enhance shell completion wit…
tw93 Jan 2, 2026
78ded00
chore: auto format code
tw93 Jan 2, 2026
1923a6b
chore: Add shellcheck directives and consolidate file writes.
tw93 Jan 2, 2026
5e7f276
fix(purge): use regex OR pattern instead of multiple -g flags for fd
JackPhallen Jan 2, 2026
f85f40b
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 2, 2026
09286f8
Merge PR #231: fix(purge): use regex OR pattern for fd
tw93 Jan 2, 2026
910e79d
feat: Improve `clean` command's regex handling and pnpm cache cleanin…
tw93 Jan 2, 2026
d701519
refactor: simplify pnpm environment variable handling in clean script
tw93 Jan 2, 2026
1ee64af
Merge main into dev (resolve conflict in .gitignore)
tw93 Jan 2, 2026
f7f7fba
chore: remove Mac client code and sync gitignore with main
tw93 Jan 2, 2026
2462968
chore: clarify workflow test job name to Unit & Integration Tests
tw93 Jan 2, 2026
115e2d3
1.18.0
tw93 Jan 2, 2026
6c8c87b
refactor: remove Christmas seasonal feature
tw93 Jan 2, 2026
ecbe43f
chore: auto format code
tw93 Jan 2, 2026
cc0cbef
feat: display macOS battery capacity and cached memory, and refine st…
tw93 Jan 2, 2026
57024f6
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 2, 2026
87963f9
chore: auto format code
tw93 Jan 2, 2026
8f388ac
Merge branch 'main' into dev
tw93 Jan 2, 2026
a0be298
Support the installation of dev branche
tw93 Jan 3, 2026
f5a8adb
feat: implement empty Library directory cleanup and Android NDK versi…
tw93 Jan 3, 2026
4aef2de
refactor: Consolidate and refactor test suite by removing redundant f…
tw93 Jan 3, 2026
4aab789
Remove VSCode Swift configurations, update .gitignore for build and t…
tw93 Jan 3, 2026
ac5c0e3
fix: Add Library directory existence check to clean script and enhanc…
tw93 Jan 3, 2026
3cb21aa
refactor: improve brew cleanup timeout handling and remove `app_cache…
tw93 Jan 3, 2026
5955bd9
feat: enhance clean logic
tw93 Jan 3, 2026
c165230
refactor: simplify ui and log defaults
tw93 Jan 3, 2026
5c1e3a9
Adds iterative empty directory cleanup and smart Edge Updater version…
tw93 Jan 3, 2026
da7bb2c
feat: add screen refresh rate display in status view
tw93 Jan 3, 2026
f98aab6
refactor: simplify configuration by removing unused environment varia…
tw93 Jan 3, 2026
dfffe0b
chore: improve CI stability and add edge install support
tw93 Jan 3, 2026
a57cd22
chore: improve CI stability and add edge install support
tw93 Jan 3, 2026
5ee7d2d
test: fix empty directory cleanup depth and remove obsolete spinner test
tw93 Jan 3, 2026
4fd3ae4
fix(ui): preserve sort state after uninstall
jimmystridh Jan 3, 2026
c4df04f
test: remove obsolete environment variable tests
tw93 Jan 3, 2026
095921f
ci: update BATS_FORMATTER to tap in test workflow.
tw93 Jan 3, 2026
8cb1bc6
Merge pull request #236 from jimmystridh/fix/preserve-sort-state-afte…
tw93 Jan 3, 2026
8db9173
feat: Add conditional colorization to BATS test output based on termi…
tw93 Jan 3, 2026
3e1f22b
feat: Add `mo` alias to zsh completion.
tw93 Jan 3, 2026
8a55e33
refactor: ensure mail cleaning configuration variables default to emp…
tw93 Jan 3, 2026
e57e715
fix(ui): improve arrow key responsiveness in menu
jimmystridh Jan 3, 2026
7415c77
docs: Link contributing guide in README and clarify PR submission to …
tw93 Jan 3, 2026
6698099
chore: auto format code
tw93 Jan 3, 2026
07a6184
Merge pull request #237 from jimmystridh/fix/arrow-key-responsiveness
tw93 Jan 3, 2026
4efe141
Merge branch 'dev'
tw93 Jan 3, 2026
6dfd675
refactor: standardize epoch time retrieval with `get_epoch_seconds` a…
tw93 Jan 3, 2026
41c8325
chore: auto format code
tw93 Jan 3, 2026
a2f071f
feat: Create utility to find stale app installers
JackPhallen Jan 3, 2026
26a380c
docs: enhance AI agent guide with detailed safety, architecture, and …
tw93 Jan 4, 2026
4680982
Merge pull request #240 from JackPhallen/feat/installers-clean
tw93 Jan 4, 2026
ad42266
refactor: rename `installers` command to `installer` across commands,…
tw93 Jan 4, 2026
5fa0ea4
chore: Skip tests that require timeout
JackPhallen Jan 4, 2026
2045917
feat(purge): Additional python purge targets
JackPhallen Jan 4, 2026
aabee42
feat(purge): C# bin purge support
JackPhallen Jan 4, 2026
9f504dc
feat: implement installer cleanup functionality, add ZIP and file des…
tw93 Jan 4, 2026
70e1544
fix: Respect whitelisted subdirectories
JackPhallen Jan 4, 2026
4ed7c9a
Merge pull request #245 from JackPhallen/chore/skip-tests-requiring-t…
tw93 Jan 4, 2026
b5dc0a5
Merge pull request #246 from JackPhallen/feat/purge-python-paths
tw93 Jan 4, 2026
0df0de3
Merge pull request #248 from JackPhallen/fix/protect-whitelisted-subd…
tw93 Jan 4, 2026
fc4d94f
Merge pull request #247 from JackPhallen/feat/more-purge-support
tw93 Jan 4, 2026
e5a3abf
feat(debug): add enhanced debug logging functions
tw93 Jan 4, 2026
cd5baf9
feat(debug): enhance file removal with detailed debug output
tw93 Jan 4, 2026
9d59649
feat(debug): add detailed debug output for clean operations
tw93 Jan 4, 2026
0520287
feat(debug): add detailed debug output for optimize operations
tw93 Jan 4, 2026
768b1bf
docs: add --debug flag documentation and update tests
tw93 Jan 4, 2026
aedeed1
fix: refine terminal alt screen management with `IN_ALT_SCREEN` flag …
tw93 Jan 4, 2026
3906c02
fix: improve cleanup by exiting alt screen and refine whitelisting fo…
tw93 Jan 4, 2026
b044fa3
chore: auto format code
tw93 Jan 4, 2026
8a0b985
fix(install): implement atomic update to prevent binary corruption
tw93 Jan 4, 2026
e434a1e
feat(uninstall): add support for third-party input methods
tw93 Jan 4, 2026
2fac1e1
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 4, 2026
797c069
Test to prevent uninstall local
tw93 Jan 4, 2026
07ea303
feat: enhance optimization summary with specific metrics for cleaned …
tw93 Jan 4, 2026
62ef283
feat: refine ZIP installer detection to handle many entries and app b…
tw93 Jan 5, 2026
f21a133
chore: Do not check if should_protect_path exists
JackPhallen Jan 5, 2026
9236f45
1.19.0
tw93 Jan 5, 2026
d9facc3
fix: ensure version extraction processes only the first line of output
tw93 Jan 5, 2026
c871d1a
chore: auto format code
tw93 Jan 5, 2026
114cdc7
feat: automate contributor list generation and display in README, and…
tw93 Jan 5, 2026
7de3900
docs: Add CONTRIBUTORS.svg and restructure README's developer and com…
tw93 Jan 5, 2026
3ce66e4
chore: update contributors [skip ci]
tw93 Jan 5, 2026
be71bd0
docs: update README's community love heading and revise support secti…
tw93 Jan 5, 2026
c6da399
fix: Use single quotes in trap
JackPhallen Jan 5, 2026
542e470
docs: Increase contributors SVG width in generation workflow and README.
tw93 Jan 5, 2026
3ddfc7a
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 5, 2026
05ace43
chore: update contributors [skip ci]
tw93 Jan 5, 2026
33837be
chore: Adjust contributors SVG layout parameters including width, ava…
tw93 Jan 5, 2026
8653687
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 5, 2026
5bc25ba
chore: update contributors [skip ci]
tw93 Jan 5, 2026
11b9b38
chore: Increase avatar margin in contributors SVG generation workflow.
tw93 Jan 5, 2026
9f02371
chore: update contributors [skip ci]
tw93 Jan 5, 2026
6c524dd
chore: Clear `CONTRIBUTORS.svg` content and update the contributor wo…
tw93 Jan 5, 2026
81f33ec
chore: update contributors [skip ci]
tw93 Jan 5, 2026
c13a2db
fix: Adjust contributor name display height, refactor SVG clip path I…
tw93 Jan 5, 2026
492db36
chore: update contributors [skip ci]
tw93 Jan 5, 2026
6044a22
fix: update contributors image paths and SVG layout
tw93 Jan 5, 2026
415f829
chore: update contributors [skip ci]
tw93 Jan 5, 2026
5d1837c
chore: Adjust contributor SVG width, avatar margin, and image source …
tw93 Jan 5, 2026
44c1395
chore: update contributors [skip ci]
tw93 Jan 5, 2026
73f11d5
docs: Update `CONTRIBUTORS.svg` image path in README and adjust avata…
tw93 Jan 5, 2026
bd3f7f2
chore: update contributors [skip ci]
tw93 Jan 5, 2026
71ef901
ci: Update contributors-list action, increase avatar margin, and add …
tw93 Jan 5, 2026
d01ec1b
chore: update contributors [skip ci]
tw93 Jan 5, 2026
41047f5
ci: Update contributors workflow to fetch new data and adjust avatar …
tw93 Jan 5, 2026
1f8b762
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 5, 2026
c4e8784
chore: configure commit user, email, author, and force push options f…
tw93 Jan 5, 2026
097b230
chore: update contributors [skip ci]
github-actions[bot] Jan 5, 2026
9707abc
fix: use safe login IDs and disable name truncation in SVG
tw93 Jan 5, 2026
49cf766
chore: update contributors [skip ci]
github-actions[bot] Jan 5, 2026
33a77fe
Merge pull request #254 from JackPhallen/chore/remove-unnecessary-com…
tw93 Jan 5, 2026
7dcb13d
chore: update contributors [skip ci]
github-actions[bot] Jan 5, 2026
f2f7e80
Merge pull request #257 from JackPhallen/fix/use-single-quotes-in-trap
tw93 Jan 5, 2026
d3bbb72
docs: refine README wording for improved clarity and conciseness, and…
tw93 Jan 5, 2026
d968cc0
docs: update security audit report to v1.19.0 and add installer clean…
tw93 Jan 5, 2026
3da97c5
test: mock clean_ds_store_tree and UI functions in clean_misc.bats
tw93 Jan 5, 2026
3ef44ef
feat: Add debug logging for installer collection and improve Homebrew…
tw93 Jan 5, 2026
62dc849
chore(deps): bump stefanzweifel/git-auto-commit-action from 5 to 7
dependabot[bot] Jan 5, 2026
6bbe4ea
Merge pull request #262 from tw93/dependabot/github_actions/stefanzwe…
tw93 Jan 6, 2026
d3f1cdd
fix(security): allow Firefox ..files directories in path validation
tw93 Jan 6, 2026
9343e1a
Merge branch 'main' of github.com:tw93/Mole
tw93 Jan 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Application scanning optimization
  • Loading branch information
tw93 committed Dec 10, 2025
commit 65743da349b7fa7693dd8a18b1542c5f2c8d57e6
43 changes: 31 additions & 12 deletions lib/clean/apps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -113,30 +113,49 @@ clean_orphaned_app_data() {
local c="${spinner_chars:$((i % 4)):1}"
echo -ne "\r\033[K $c Scanning installed apps... $count found" >&2
((i++))
sleep 0.2 2> /dev/null || sleep 1
sleep 0.1
done
) &
local spinner_pid=$!

# Parallel scan for applications with increased timeout for large app directories
# Parallel scan for applications
local pids=()
local dir_idx=0
for app_dir in "${app_dirs[@]}"; do
[[ -d "$app_dir" ]] || continue
(
# Increased timeout to 30s to handle large app directories (especially /System/Applications)
# Timeout errors are suppressed to prevent confusing output
run_with_timeout 30 sh -c "find '$app_dir' -name '*.app' -maxdepth 3 -type d 2> /dev/null" 2> /dev/null | while IFS= read -r app_path; do
local bundle_id
bundle_id=$(defaults read "$app_path/Contents/Info.plist" CFBundleIdentifier 2> /dev/null || echo "")
# Quickly find all .app bundles first
local -a app_paths=()
while IFS= read -r app_path; do
[[ -n "$app_path" ]] && app_paths+=("$app_path")
done < <(find "$app_dir" -name '*.app' -maxdepth 3 -type d 2> /dev/null)

# Read bundle IDs with PlistBuddy
local count=0
for app_path in "${app_paths[@]}"; do
local plist_path="$app_path/Contents/Info.plist"
[[ ! -f "$plist_path" ]] && continue

local bundle_id=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "$plist_path" 2> /dev/null || echo "")

if [[ -n "$bundle_id" ]]; then
echo "$bundle_id"
# Update progress count atomically
local current_count=$(cat "$progress_count_file" 2> /dev/null || echo "0")
echo "$((current_count + 1))" > "$progress_count_file"
((count++))

# Batch update progress every 10 apps to reduce I/O
if [[ $((count % 10)) -eq 0 ]]; then
local current=$(cat "$progress_count_file" 2> /dev/null || echo "0")
echo "$((current + 10))" > "$progress_count_file"
fi
fi
done > "$scan_tmp_dir/apps_${dir_idx}.txt"
) &
done

# Final progress update
if [[ $((count % 10)) -ne 0 ]]; then
local current=$(cat "$progress_count_file" 2> /dev/null || echo "0")
echo "$((current + count % 10))" > "$progress_count_file"
fi
) > "$scan_tmp_dir/apps_${dir_idx}.txt" &
pids+=($!)
((dir_idx++))
done
Expand Down
3 changes: 1 addition & 2 deletions lib/core/ui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,7 @@ start_inline_spinner() {
# Output to stderr to avoid interfering with stdout
printf "\r${MOLE_SPINNER_PREFIX:-}${BLUE}%s${NC} %s" "$c" "$message" >&2 || exit 0
((i++))
# macOS supports decimal sleep, this is the primary target
sleep 0.1 2> /dev/null || sleep 1 2> /dev/null || exit 0
sleep 0.1
done
) &
INLINE_SPINNER_PID=$!
Expand Down
2 changes: 1 addition & 1 deletion mole
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/lib/core/common.sh"

# Version info
VERSION="1.12.4"
VERSION="1.12.5"
MOLE_TAGLINE="can dig deep to clean your Mac."

# Check if Touch ID is already configured
Expand Down