v0.5.0 — Swiss army knife release
The "Swiss army knife" release. Eight new components across four layers — config foundation, quick wins, features, and onboarding.
What's new
gmail-cleanup setup— interactive 6-step OAuth onboarding (open GCP → poll Downloads → smoke test → register account). Reduces first-run friction by ~80%.gmail-cleanup autopilot --all-accounts— runs the full pipeline across every configured account with partial-failure semantics.gmail-cleanup status— inbox health dashboard: live counts, filter inventory, list sizes, 7-day history.gmail-cleanup attachments— storage cleanup. Finds oversized old emails, ranks senders by bytes attributed.gmail-cleanup schedule install— daily launchd-scheduled autopilot (macOS).gmail-cleanup config / accounts— manage~/.gmail_cli/config.yaml.--emailbecomes optional once configured.- Rich progress UI + global
--quiet(cron-safe) and--verbose(debug) flags. - Auto-close-the-loop on unsubscribes — successful unsubs auto-append to
lists/unsubbed.yaml.
Under the hood
- Package refactor:
gmail_cli.py→gmail_cleanup/package (7 modules, kept the same console-script entry). - Per-account state file at
~/.gmail_cli/state_<email>.jsonwith 30-entry capped history. - New CI workflow runs pytest on Python 3.11/3.12/3.13 for every PR.
Tests
84 passing (was 52 at v0.4.0). +32 new tests covering config, accounts, state, atomic writes, attachments size parser, multi-account dispatch.
Install
```bash
pip install git+https://github.com/bgorzelic/gmail-cleanup.git
gmail-cleanup setup # first-time wizard
gmail-cleanup autopilot # daily cleanup
```
Full changelog: CHANGELOG.md
Architecture tour: ARCHITECTURE.md