1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-04 14:26:46 +00:00
Commit Graph

1260 Commits

Author SHA1 Message Date
Jack Phallen
cf4690191e Fix semaphore acquisition order
Acquire semaphore before spawning goroutine in calculateDirSizeFast to prevent goroutine
explosion. Previously, all subdirectory goroutines were spawned immediately and blocked on
the semaphore—now the spawning itself is throttled.
2026-01-11 10:58:45 -05:00
Tw93
54be4e30a2 fix: global optimization for safe_clean and doc update 2026-01-11 09:55:18 +08:00
Tw93
74fc3df455 Merge branch 'pr-287' into dev 2026-01-11 09:27:15 +08:00
Tw93
413b2c8f98 fix: disable aggressive cleanup and optimize directory checks 2026-01-11 09:27:12 +08:00
Tw93
c8daf57b28 Merge pull request #290 from alexandear-org/refactor/use-slices-clone
refactor: simplify with slices.Clone
2026-01-11 08:54:37 +08:00
Tw93
fdacd3e087 update security audit 2026-01-11 08:51:01 +08:00
Tw93
3ae0746f77 Merge pull request #292 from JackPhallen/feat/time-machine-mounted
feat: Skip Time Machine cleaning if running
2026-01-11 08:47:36 +08:00
Tw93
e186086578 Fix handing issue on macOS Sequoia after completing 1 task (#291) 2026-01-11 08:11:43 +08:00
Jack Phallen
c0f76936cd feat: Skip TimeMachine cleaning if running 2026-01-10 17:40:42 -05:00
Oleksandr Redko
14b8fa688e refactor: simplify with slices.Clone 2026-01-10 20:41:05 +02:00
Tw93
d45423df94 fix issue with mo remove #289 2026-01-10 20:08:47 +08:00
Tw93
083ab55661 docs: update windows support link 2026-01-10 13:20:26 +08:00
Tw93
9434b41fbe chore: remove windows support from dev branch (moved to dedicated windows branch) 2026-01-10 13:19:56 +08:00
Tw93
e84a457c2f Merge branch 'main' into dev 2026-01-10 13:05:53 +08:00
Tw93
ef713afda7 update test 2026-01-10 09:41:17 +08:00
Tw93
8a3443be4d update readme 2026-01-10 08:58:16 +08:00
Tw93
8118cab604 Merge branch 'main' of github.com:tw93/Mole 2026-01-10 08:52:12 +08:00
Tw93
7d43e669a8 fix(analyze): improve deletion safety and UI clarity
- Update UI status to 'Moving to Trash...' for clarity
- Use os.Lstat instead of os.Stat to correctly handle broken symlinks during deletion checks
2026-01-10 08:51:14 +08:00
Tw93
273a6b5cf0 fix(clean): enhance orphan detection accuracy and safety
- Expand app scan to include Homebrew Cask and Setapp locations
- Add lsappinfo fallback for more reliable running app detection
- Add sensitive data protection patterns (1Password, Keychain, etc.)
- Add mdfind fallback with file-based caching (Bash 3.2 compatible)
2026-01-10 08:51:14 +08:00
Tw93
9c39eef7fe chore: auto format code 2026-01-10 00:23:16 +00:00
Tw93
0a654f365b fix(clean): enhance orphan detection accuracy and safety
- Expand app scan to include Homebrew Cask and Setapp locations
- Add lsappinfo fallback for more reliable running app detection
- Add sensitive data protection patterns (1Password, Keychain, etc.)
- Add mdfind fallback with file-based caching (Bash 3.2 compatible)
2026-01-10 08:22:17 +08:00
github-actions[bot]
b952752a7d chore: update contributors [skip ci] 2026-01-09 23:25:33 +00:00
Tw93
ebb4f7a1e9 feat(analyze): safer deletion with Trash and two-key confirm
- Change delete confirmation from double-delete to Delete→Enter
- Move files to macOS Trash instead of permanent deletion
- Allow file recovery from Trash if accidentally deleted
- Update UI prompts to show 'Press Enter to confirm'
- Skip Finder-dependent tests in CI environments
- Update SECURITY_AUDIT.md with new safety mechanisms

Closes #288
2026-01-10 07:24:58 +08:00
biplavbarua
096c0ca73f feat: add cleanup support for Elixir, Haskell, OCaml, and Editors 2026-01-10 01:22:43 +05:30
Biplav Barua
3507870275 feat: add Angular, SvelteKit, Astro, and coverage to purge targets (#286) 2026-01-10 00:05:38 +08:00
Tw93
cbd777bf14 Update documents and instructions 2026-01-09 17:13:34 +08:00
Tw93
cce0afecc5 Merge branch 'dev' of github.com:tw93/Mole into dev 2026-01-09 15:10:36 +08:00
Tw93
124e498f15 refactor(windows): fix cmdlet shadowing and enforce dependency isolation 2026-01-09 15:10:26 +08:00
github-actions[bot]
9915d5e56f chore: update contributors [skip ci] 2026-01-09 06:50:00 +00:00
Tw93
e40a992f7e Merge branch main into dev 2026-01-09 14:49:31 +08:00
Tw93
ea00d979da Merge branch 'main' into dev 2026-01-09 14:49:08 +08:00
Tw93
ce8989d3e9 chore: auto format code 2026-01-09 06:44:51 +00:00
Tw93
e33e428569 fix: add KeePassXC new bundle id to protection list (#285) 2026-01-09 14:43:50 +08:00
Tw93
24fa0f8f21 feat: Add cleanup rule for Quark (夸克) video cache (#279) 2026-01-09 14:38:59 +08:00
github-actions[bot]
07e1ee0f3e chore: update contributors [skip ci] 2026-01-09 06:16:55 +00:00
Tw93
2b5dd3f44c feat: show scanning progress as percentage in disk analyzer
- Implemented progress percentage display (e.g., `(45%)`) in `cmd/analyze` to show scanning status based on cached total files.
- Kept the UI clean by avoiding a full progress bar.
- fix: formatting improvements in `bin/touchid.sh`.
2026-01-09 14:16:29 +08:00
github-actions[bot]
bb4561e682 chore: update contributors [skip ci] 2026-01-09 03:02:38 +00:00
Tw93
2394c5d768 feat(touchid): add sudo_local support with silent migration 2026-01-09 11:02:10 +08:00
Bhadra
ee2c798b29 docs: url update 2026-01-08 23:08:44 +05:30
Bhadra
2e0714d1fe docs: add Windows platform support section to README 2026-01-08 23:07:55 +05:30
Bhadra
9b40c5acf4 fix(windows): support arrow key escape sequences in interactive menus
Some terminals send escape sequences (ESC [ A/B) instead of VirtualKeyCode
for arrow keys. Now handles both methods for better terminal compatibility.
2026-01-08 22:49:43 +05:30
Bhadra
800db2429d fix(windows): address code review security and reliability issues
- Add protection checks to Go analyze tool before delete operations
- Use try/finally to ensure Windows Update service restarts after cleanup
- Don't count interactive uninstall as automatic success
- Tighten orphaned app detection with stricter prefix matching
2026-01-08 22:25:57 +05:30
Bhadra
3255fa2451 fix(windows): fix CI function name and purge return type handling
- Fix Test-IsProtectedPath -> Test-ProtectedPath in CI workflow
- Fix purge.ps1 to handle boolean return from Remove-SafeItem
- Add C:\Program Files and C:\Program Files (x86) to ProtectedPaths
2026-01-08 21:37:07 +05:30
Bhadra
cfe8ea0724 fix(windows): address code review issues
- Fix openInExplorer to actually execute explorer.exe (was a no-op)
- Load System.Windows.Forms assembly before using Clipboard
- Use Remove-SafeItem in purge for consistent safety checks
- Fix Dropbox typo (was DroplboxCache)
2026-01-08 20:08:41 +05:30
Bhadra
34affd75c4 fix(windows): fix install script directory copy to prevent nesting
- Remove existing directories before copying to prevent nested folder structures (e.g., bin/bin)
- This fixes 'Unknown command' errors after installation
2026-01-08 19:59:51 +05:30
Bhadra
7b03fceaf8 perf(windows): speed up analyze scanning with shallow depth
- Reduce timeout from 5s to 500ms per directory
- Limit scan depth to 3 levels for quick size estimation
- Reduce max files scanned from 50k to 10k
- Results now appear in 1-2 seconds instead of minutes
2026-01-08 19:40:38 +05:30
Bhadra
3653900e2d fix(windows): fix property access errors and scanning performance
- Fix analyze: Add timeout and depth limits to calculateDirSize() to prevent
  indefinite scanning on large directories like user profile
- Fix purge: Add null checks for .Count property access under StrictMode
- Fix uninstall: Wrap registry property access in try/catch for items without
  DisplayName, and add null checks throughout
- Fix mole.ps1: Add null check for Arguments.Count
- Add try/catch around CursorVisible calls for non-interactive terminals

All 73 Pester tests and all Go tests pass.
2026-01-08 19:33:26 +05:30
Bhadra
3ebaeefa18 fix(windows): fix CLI argument passing for switches like -DryRun
- Fix mole.cmd batch launcher to properly pass switch arguments
- Store %~dp0 before parse loop to avoid expansion issues
- Use PowerShell splatting in Invoke-MoleCommand for proper switch handling
- Rename $script:DryRun to $script:MoleDryRunMode in file_ops.ps1 to avoid
  variable shadowing when dot-sourcing
- Handle switches passed as strings (e.g., '-ShowHelp') in mole.ps1 Main()

Fixes issue where 'mole clean -DryRun' would run cleanup instead of preview.
2026-01-08 18:08:59 +05:30
Bhadra
230ca07c7f feat(windows): add Windows support Phase 4 - testing and CI
- Pester test suite for PowerShell scripts (Core, Clean, Commands)
- Go tests for TUI tools (analyze, status)
- GitHub Actions workflow for Windows CI
- Build and test automation scripts (test.ps1, build.ps1)
2026-01-08 16:41:03 +05:30
Bhadra
8a37f63bc7 feat(windows): add Windows support Phase 3 - TUI tools
Add Go-based TUI tools for Windows:
- cmd/analyze: Interactive disk space analyzer with Bubble Tea
- cmd/status: Real-time system health monitor using gopsutil/WMI
- bin/analyze.ps1: Wrapper script for analyze tool
- bin/status.ps1: Wrapper script for status tool
- Makefile: Build automation for Go tools
- Updated README.md with Phase 3 documentation
2026-01-08 16:18:26 +05:30