Skip to content

v0.5.0 — Swiss army knife release

Choose a tag to compare

@bgorzelic bgorzelic released this 16 May 07:45
· 49 commits to main since this 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. --email becomes 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>.json with 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