Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
Binary file added .DS_Store
Binary file not shown.
74 changes: 51 additions & 23 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,61 @@

All notable changes to **mac-deep-cleaner** will be documented in this file.

## Unreleased
## v2.0.0 (2026-05-15)

## v1.5.0 (2026-05-12)
### Added
#### P0 (baseline UX and safety)
- [x] Global --dry-run flag (src/core/dry_run.py)
- [x] Shell completion command (src/core/completions.py)
- [x] Full app uninstaller (src/core/uninstaller.py)

#### P1 (highest demand data and visibility)
- [x] Browser data cleaner (src/scanners/browser_data.py)
- [x] Visual disk space map (src/scanners/space_map.py)
- [x] Photo library analyzer (src/scanners/photos_analyzer.py)
- [x] iOS simulator deep cleaner (src/scanners/simulators.py)
## Cross-cutting Work
- Add new CLI subcommands and options in src/cli.py
- Extend config schema in src/config/config.py for new features
- Add logging and safe-path validation in src/core/safety.py where needed
- Expand reporting exports in src/reporting for new outputs
- Add tests for parsers and non-destructive scanners in tests/

## External Dependencies (tentative)
- textual or prompt_toolkit for interactive TUI picker
- rumps for menu bar companion
- requests or urllib for HIBP API (prefer urllib to avoid new deps)
- pandas/pyarrow NOT planned (keep lightweight)

## Safety Gates
- All destructive operations honor --dry-run and undo staging.
- Time Machine guard before bulk deletes.
- APFS snapshot support behind explicit flags.
- Restore checksum verification for staged files.

#### P2 (system utilities and maintenance)
- [x] Memory pressure reliever (src/core/memory_pressure.py)
- [x] Homebrew deep manager (src/core/brew_manager.py)
- [x] Storage trend tracker (src/reporting/storage_trend.py)
- [x] Recent files and activity cleaner (src/scanners/recent_activity.py)
## Open Decisions (needs confirmation)
- Preferred TUI library (textual vs prompt_toolkit)
- Whether to add optional dependencies vs strict core only
- Handling sudo-required operations (auto prompt vs printed instructions)
- HIBP API key provisioning and storage
- Minimum supported macOS version for system commands
- CI mode via `mdc uninstall-cli` ti uninstall this package

#### P3 (advanced and higher risk features)
- [x] Permissions auditor (src/core/permissions_auditor.py)
- [x] APFS snapshot guard (src/core/apfs_snapshots.py)
- [x] Menu bar companion (src/core/menubar.py)
- [x] Data breach monitor (src/core/breach_monitor.py)
- [x] Cloud storage junk scanner (src/scanners/cloud_junk.py)
### Changed
- CLI wiring for new feature commands
- Added reporting utilities
- Updated Readme for new features
- Version bump to v2.0.0 across docs and UI

## v1.5.0 (2026-05-12)
### Added
- Global --dry-run flag (src/core/dry_run.py)
- Shell completion command (src/core/completions.py)
- Full app uninstaller (src/core/uninstaller.py)
- Browser data cleaner (src/scanners/browser_data.py)
- Visual disk space map (src/scanners/space_map.py)
- Photo library analyzer (src/scanners/photos_analyzer.py)
- iOS simulator deep cleaner (src/scanners/simulators.py)
- Memory pressure reliever (src/core/memory_pressure.py)
- Homebrew deep manager (src/core/brew_manager.py)
- Storage trend tracker (src/reporting/storage_trend.py)
- Recent files and activity cleaner (src/scanners/recent_activity.py)
- Permissions auditor (src/core/permissions_auditor.py)
- APFS snapshot guard (src/core/apfs_snapshots.py)
- Menu bar companion (src/core/menubar.py)
- Data breach monitor (src/core/breach_monitor.py)
- Cloud storage junk scanner (src/scanners/cloud_junk.py)

### Changed
- CLI wiring for new P0/P1 commands and dry-run behavior
Expand All @@ -47,7 +75,7 @@ All notable changes to **mac-deep-cleaner** will be documented in this file.
### Changed
- Live dashboard now shows top findings and dev junk totals
- Scan history schema extended with developer junk totals
- Version bump to v1.5.0 across docs and UI
- Version bump to v1.2.0 across docs and UI

## v1.0.0 (2026-05-10)
### Added
Expand Down
75 changes: 74 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Mac Deep Cleaner v1.5.0
# Mac Deep Cleaner

**Professional macOS cleanup tool — Smart App Orphan Detector**

Expand Down Expand Up @@ -42,12 +42,27 @@ mdc scan
- **Homebrew manager** — cache sizes, outdated list, cleanup and autoremove
- **Storage trend tracker** — snapshots disk usage over time
- **Recent activity cleaner** — scans recent-items files (safe clear)
- **Purgeable space reclaimer** — snapshot thinning and purgeable status
- **Installer & PKG hunter** — find old installers and disk images
- **DNS cache flush** — refresh name resolution caches
- **Font cache rebuild** — rebuild ATS caches safely
- **Spotlight re-index** — rebuild metadata index on demand
- **Sleep & power optimizer** — apply recommended pmset settings
- **App update checker** — system, Homebrew, and App Store updates
- **PKG receipt manager** — list and forget pkgutil receipts
- **Xcode derived data cleaner** — DerivedData, Archives, caches
- **Permissions auditor** — TCC privacy access audit (read-only)
- **Time Machine backup guard** — status, age checks, local snapshots
- **APFS snapshot guard** — list and prune local snapshots
- **Menu bar companion** — SwiftBar/xbar plugin for last scan summary
- **Data breach monitor** — checks emails via HIBP API (opt-in)
- **Cloud storage junk** — scans Dropbox/Drive/OneDrive/Box caches
- **Scheduler** — installs a LaunchAgent for weekly auto-scans
- **Weekly digest report** — aggregated weekly scan summary
- **Cleaning impact score** — score reclaimable impact per scan
- **Interactive TUI app picker** — choose apps with keyboard search
- **Multi-Mac config sync** — export/import config across devices
- **Restore checksum verification** — verify restores via `undo --verify`
- **macOS notifications** — via `osascript`, no dependencies
- **CI mode** — JSON-only scan summary with threshold-based exit code
- **Live TUI dashboard** — Rich Live/Layout summary while a scan is running
Expand Down Expand Up @@ -171,6 +186,14 @@ mac-cleaner duplicates --path ~/Movies --min-size 500
mac-cleaner large-files
mac-cleaner large-files --min-mb 50 --export large.json

# Installer and PKG hunter
mac-cleaner installer-hunter --min-age-days 30
mac-cleaner installer-hunter --delete --yes

# Xcode derived data cleaner
mac-cleaner xcode-cleaner
mac-cleaner xcode-cleaner --delete --yes

# Find broken symlinks
mac-cleaner symlinks
mac-cleaner symlinks --delete
Expand Down Expand Up @@ -204,6 +227,15 @@ mac-cleaner diff
mac-cleaner diff abc12345 def67890
```

### Reports
```bash
# Weekly digest report
mac-cleaner weekly-digest --days 7

# Cleaning impact score
mac-cleaner impact-score
```

### Undo
```bash
# List staged deletion sessions
Expand All @@ -215,6 +247,9 @@ mac-cleaner undo
# Restore a specific session
mac-cleaner undo --session abc12345

# Restore with checksum verification
mac-cleaner undo --verify

# Purge old staged files
mac-cleaner undo --purge
```
Expand All @@ -227,12 +262,34 @@ mac-cleaner system --login-items
mac-cleaner system --health
```

### TUI app picker
```bash
mac-cleaner tui-picker
mac-cleaner tui-picker --uninstall --yes
```

### P2/P3 system utilities
```bash
# Memory pressure
mac-cleaner memory-pressure
mac-cleaner memory-pressure --relieve

# Purgeable space
mac-cleaner purgeable
mac-cleaner purgeable --thin-gb 10 --yes

# DNS cache
mac-cleaner dns-cache --flush

# Font cache
mac-cleaner font-cache --rebuild --clear-user

# Spotlight
mac-cleaner spotlight --reindex

# Power optimizer
mac-cleaner power-optimizer --apply

# Homebrew manager
mac-cleaner brew --outdated
mac-cleaner brew --cleanup --yes
Expand All @@ -249,10 +306,19 @@ mac-cleaner recent-activity --clear
mac-cleaner permissions
mac-cleaner permissions --system --export tcc.json

# App updates
mac-cleaner app-updates --all

# PKG receipts
mac-cleaner pkg-receipts --search com.apple --details

# APFS snapshots
mac-cleaner snapshots
mac-cleaner snapshots --delete-older-than 14 --yes

# Time Machine guard
mac-cleaner time-machine

# Menu bar companion
mac-cleaner menubar install --interval 15
mac-cleaner menubar status --format swiftbar
Expand Down Expand Up @@ -287,6 +353,13 @@ mac-cleaner config --init # create default config file
mac-cleaner config --show # print resolved settings
```

### Config sync
```bash
mac-cleaner config-sync export
mac-cleaner config-sync import
mac-cleaner config-sync status
```

---

## Configuration (`~/.config/mac-cleaner/config.yaml`)
Expand Down
2 changes: 1 addition & 1 deletion docs/FEATURES.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Mac Deep Cleaner — Features (v1.5.0)
# Mac Deep Cleaner — Features (v2.0.0)

**Mac Deep Cleaner** is a professional macOS cleanup tool that safely detects and helps you remove leftover data from uninstalled apps, along with general junk that accumulates over time. It is designed to be **safe by default**, with **preview-first** workflows and **undo/restore support**.

Expand Down
6 changes: 3 additions & 3 deletions docs/PYPI_PUBLISHING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Publishing to PyPI (pypi.org) — mac-deep-cleaner (v1.5.0)
# Publishing to PyPI (pypi.org) — mac-deep-cleaner (v2.0.0)

## What you’ll publish
This project is configured to build with `setuptools` from `pyproject.toml` (PEP 621). The package name is:
Expand Down Expand Up @@ -50,8 +50,8 @@ pip install mac-deep-cleaner==1.2.0
If you want to keep credentials out of shell history:
- Use your CI secret store to set `TWINE_USERNAME` and `TWINE_PASSWORD`.

## Quick checklist for v1.5.0
## Quick checklist for v2.0.0
- `pyproject.toml` → `project.version = "1.2.0"`
- `README.md` / docs reflect v1.5.0
- `README.md` / docs reflect v2.0.0
- `python3 -m build` produces valid wheel + sdist
- `twine upload dist/*` succeeds
1 change: 1 addition & 0 deletions docs/test.md
Original file line number Diff line number Diff line change
Expand Up @@ -345,3 +345,4 @@ Default behavior:
- Use `scan` first to preview what would be removed.
- Use `clean` with undo enabled for safer cleanup.
- Use `undo --list` to view staging sessions and `undo --session <prefix>` to restore.
- rg -0 -l "v1\.2\.0" -g '!build/**' -g '!.venv/**' | xargs -0 perl -pi -e 's/v1\.2\.0/v2.0.0/g' ( to change the v directly with finding patterns)
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "mac-deep-cleaner"
version = "1.5.0"
version = "2.0.0"
description = "Professional Mac cleanup tool — Smart App Orphan Detector"
readme = "README.md"
license = "Apache-2.0"
Expand Down
30 changes: 1 addition & 29 deletions roadmap.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,9 @@
# Mac Deep Cleaner v2.x Roadmap

Date: 2026-05-11
Date: 2026-05-15

## Goals
- Ship a full v2.x feature set with professional-grade safety, logging, and undo support.
- Keep destructive actions opt-in and gated by explicit flags and confirmations.
- Keep new dependencies minimal and justified; document when optional.
- Add a feature module per roadmap item, grouped by domain.

## Proposed Feature Modules (one per feature)

## Cross-cutting Work
- Add new CLI subcommands and options in src/cli.py
- Extend config schema in src/config/config.py for new features
- Add logging and safe-path validation in src/core/safety.py where needed
- Expand reporting exports in src/reporting for new outputs
- Add tests for parsers and non-destructive scanners in tests/

## External Dependencies (tentative)
- textual or prompt_toolkit for interactive TUI picker
- rumps for menu bar companion
- requests or urllib for HIBP API (prefer urllib to avoid new deps)
- pandas/pyarrow NOT planned (keep lightweight)

## Safety Gates
- All destructive operations honor --dry-run and undo staging.
- Time Machine guard before bulk deletes.
- APFS snapshot support behind explicit flags.
- Restore checksum verification for staged files.

## Open Decisions (needs confirmation)
- Preferred TUI library (textual vs prompt_toolkit)
- Whether to add optional dependencies vs strict core only
- Handling sudo-required operations (auto prompt vs printed instructions)
- HIBP API key provisioning and storage
- Minimum supported macOS version for system commands
2 changes: 1 addition & 1 deletion scripts/build.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# =============================================================================
# Mac Deep Cleaner v1.5.0 — Build & Install Script
# Mac Deep Cleaner v2.0.0 — Build & Install Script
# =============================================================================
# Usage:
# bash build.sh → default: build wheel + sdist
Expand Down
3 changes: 1 addition & 2 deletions src/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"""
Mac Deep Cleaner v1.5.0 — Professional Edition
Smart App Orphan Detector & System Cleanup Tool for macOS
"""

__version__ = "1.5.0"
__version__ = "2.0.0"
__author__ = "NK2552003"
Loading
Loading