1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-04 16:49:41 +00:00
Commit Graph

1466 Commits

Author SHA1 Message Date
tw93
86c9005381 Merge branch 'dwjoss/cleanable-tests' of https://github.com/dwjoss/Mole; branch 'main' of https://github.com/tw93/Mole 2026-01-27 10:30:43 +08:00
tw93
0fe72245ce docs: rewrite SECURITY_AUDIT.md as technical reference 2026-01-27 10:22:07 +08:00
Andrei Murariu
ac79773965 README: mo analyze - update the netowkr graph (#366)
continued the PR - https://github.com/tw93/Mole/pull/321
2026-01-27 10:04:49 +08:00
Dylan Joss
162ba949ee test: expand cleanable directory detection tests
Enhance test coverage for `isCleanableDir` and add new tests for
`isHandledByMoClean` in `cmd/analyze/analyze_test.go`.

`TestIsHandledByMoClean` (new, 12 test cases):
- Paths `mo clean` handles (caches, logs, saved state, trash, reports)
- Paths `mo clean` does NOT handle (project dirs, home, random)
- Case sensitivity verification

`TestIsCleanableDir` (expanded from 3 to 24 test cases):
- Project dependencies (`node_modules`, `venv`, `pycache`, `build`, etc.)
- Xcode/iOS directories (DerivedData, Pods)
- Build outputs (dist, target, .next, coverage)
- Paths excluded because `mo clean` handles them
- Edge cases (empty string, root path, just basename)
2026-01-26 14:05:02 -08:00
tw93
3919a70300 fix: enhance uninstall security per audit review
- Validate bundle_id format (reverse-DNS) in stop_launch_services() to prevent glob injection attacks
    - Add common word exclusion list for LaunchAgents name search to avoid false positive matches (Music, Notes, Photos, etc.) - Add security comments explaining symlink handling in remove_file_list()
    - Improve brew_uninstall_cask() timeout handling: exit code 124 now returns failure immediately
    - Update SECURITY_AUDIT.md with remediation details
2026-01-26 20:27:46 +08:00
Tw93
09f0cf9e53 chore: auto format code 2026-01-26 07:46:58 +00:00
tw93
b67d149cef Merge branch 'main' of https://github.com/tw93/Mole 2026-01-26 15:46:05 +08:00
tw93
0fbf88a6c6 fix: harden cleanup path validation 2026-01-26 15:43:11 +08:00
Tw93
f272d29490 chore: auto format code 2026-01-26 07:32:44 +00:00
tw93
43a92a1847 Merge branch 'main' of https://github.com/tw93/Mole 2026-01-26 15:31:43 +08:00
tw93
981c79cfd1 fix: clear cleaning spinner after cleanup 2026-01-26 15:31:30 +08:00
Tw93
587b127c01 chore: auto format code 2026-01-26 07:24:38 +00:00
tw93
610a4fc0a7 chore: simplify optimize maintenance cleanup 2026-01-26 15:22:20 +08:00
tw93
864bade7c6 fix: improve uninstall guidance and timeouts 2026-01-26 15:22:16 +08:00
tw93
8c4cd7f82e feat: log cleanup operations for troubleshooting 2026-01-26 15:22:07 +08:00
tw93
e0aba780c8 feat: remove automatic Rosetta 2 installation prompt
- Change Rosetta 2 status from warning to info
- Remove auto-fix suggestion for missing Rosetta 2
- Update tests to reflect new behavior (3 -> 2 expected fixes)
2026-01-26 14:36:12 +08:00
tw93
e966838c82 style: standardize punctuation across codebase
- Replace parentheses with commas for supplementary info
- Use commas instead of em-dashes for separators
- Update bullet points from - to * in some contexts
- Improve version extraction regex with fallback logic
2026-01-26 14:36:06 +08:00
github-actions[bot]
a7bad3d79a chore: update contributors [skip ci] 2026-01-26 03:12:00 +00:00
tw93
b8c25e4056 fix: improve cleanup code and fix Edge test isolation
- Refactor JetBrains Toolbox cleanup with _restore_whitelist helper
- Add MOLE_EDGE_APP_PATHS env var for test isolation
- Fix Edge old versions tests to avoid scanning system Edge installation
2026-01-26 11:09:38 +08:00
TomP0
61723e8d86 fix: handle empty arrays in clean_dev_jetbrains_toolbox (#361)
Add checks for empty product_dirs and version_dirs arrays before
iterating to prevent "unbound variable" errors when running with
set -u (pipefail) and the JetBrains Toolbox directory doesn't exist
or contains no products.
2026-01-26 10:49:30 +08:00
Tw93
5a29f506dc chore: auto format code 2026-01-26 02:46:32 +00:00
tw93
ee32a63673 Merge branch 'main' of https://github.com/tw93/Mole 2026-01-26 10:45:32 +08:00
tw93
e803c46304 style: unify DRY_RUN variable check in trash cleanup 2026-01-26 10:44:36 +08:00
Tw93
4bacba7fec chore: auto format code 2026-01-26 02:28:41 +00:00
Andrei Murariu
89eb442866 bug-fix: add automatic trash emptying to clean command (#363)
- Empty trash using macOS Finder API (osascript) for proper permission handling
- Respects whitelist protection (skips if Trash is whitelisted)
- Shows item count when emptying trash
- Fallback to direct cleanup if Finder API fails
- Supports dry-run mode

Issue: #362
2026-01-26 10:28:03 +08:00
tw93
fb4cef5fa7 docs: add help text and test for 'mo update --force' 2026-01-26 10:10:46 +08:00
Andrei Murariu
670f970b4c feature: mo update --force flag implementation (#360) 2026-01-26 10:07:58 +08:00
Tw93
fbff0ec3bd fix: show spinner during cleanup phase
Add progress indicator when deleting files to prevent the terminal
from appearing frozen during long-running cleanup operations.

Closes #358
2026-01-24 08:31:04 +08:00
Tw93
c0596f51e3 Fix update output version parsing V1.23.2 2026-01-23 23:28:27 +08:00
Tw93
b0f9761458 test: add process_install_output test cases
- Test install.sh success message with version
- Test fallback version when no success message
- Test empty output handling
- Test avoiding wrong parentheses content extraction
2026-01-23 22:57:48 +08:00
Tw93
f9c33ac317 publish 1.23.1 2026-01-23 22:41:43 +08:00
Tw93
a4f1f49fab feat: improve version detection and error handling
- Add fallback to mo --version when brew list fails
- Add error handling for debug log write failures
- Improve version extraction with multiple fallback strategies
2026-01-23 22:25:35 +08:00
Tw93
a27caab2b6 update core 2026-01-23 20:45:21 +08:00
Tw93
3d985ebcb9 publish 1.23 2026-01-23 20:31:54 +08:00
Tw93
83166f2fe8 fix: avoid orphan service false positives and warm large file threshold 2026-01-23 20:16:06 +08:00
Tw93
500b6dc554 fix(clean): silence ShellCheck SC2053 2026-01-23 18:32:33 +08:00
Tw93
7e359c57d9 fix(analyze): correct top list and thresholds 2026-01-23 18:27:05 +08:00
Tw93
d7a0d480bc fix: improve dry-run mode and error handling
- Export MOLE_DRY_RUN env var for subprocess visibility
- Add || true to grep commands to prevent pipeline failures
- Add dry-run test for clean_orphaned_system_services
- Simplify clean_local_snapshots tests
2026-01-23 18:05:09 +08:00
github-actions[bot]
eb86a0ae37 chore: update contributors [skip ci] 2026-01-23 09:38:06 +00:00
Tw93
8c9cd1f90c feat(clean): add JetBrains Toolbox old IDE cleanup with whitelist-safe handling 2026-01-23 17:37:37 +08:00
github-actions[bot]
e48943cd0f chore: update contributors [skip ci] 2026-01-23 01:58:17 +00:00
Tw93
a24bed685b Merge branch 'main' of github.com:tw93/Mole 2026-01-23 09:57:54 +08:00
Tw93
1ad7d7e79b refactor: simplify Puppeteer cache cleanup to match browser cache pattern
- Replace 48-line custom function with one-line safe_clean call
- Remove unnecessary interactive confirmation (consistent with other browser caches)
- Simplify tests to verify Puppeteer cache is in clean_browsers output
- Net: -93 lines of code for same functionality
2026-01-23 09:56:14 +08:00
github-actions[bot]
0cebdea78e chore: update contributors [skip ci] 2026-01-23 01:55:21 +00:00
Shakeel Mohamed
5a8d766667 Add Puppeteer cache cleanup (#353) 2026-01-23 09:55:02 +08:00
Tw93
7e40824fa3 optimize code syntax 2026-01-23 09:43:04 +08:00
Andrei Murariu
340a71056c bug-fix: mo uninstall unbound variable on empty tuples (#352)
This happens when no third party app is available to be uninstalled; this triggers an `unbound variable` on the app_data_tuple causing the utility to fail.

This is caused mostly because the bash version is 3.2 on MacOS; it seems that since Bash 4 this unbound_variable is set to 0 and would have not went to that error.

Added an alternative value in case of error of 0 for this topic. This should handle this corner case
2026-01-23 09:40:13 +08:00
Tw93
be2e9ddeca change reminder icon to be more comfortable 2026-01-23 09:33:12 +08:00
Tw93
cde39aaeb2 feat(clean): add large file review and unify warnings 2026-01-22 20:15:13 +08:00
Tw93
9d824d0ad2 fix: restore uninstall traps and remove dead search key 2026-01-22 17:45:53 +08:00