All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Thread-Safe State Management: Added
threading.Locksynchronization toAppStateclass to prevent race conditions in concurrent operations - Gmail Query Injection Prevention: Added
sanitize_gmail_query_value()function to properly escape user-supplied values in Gmail API queries - API Rate Limiting: Added
slowapimiddleware with tiered rate limits:- Status endpoints: 120 req/min
- Action endpoints: 30 req/min
- Auth endpoints: 10 req/min
- Heavy operations: 10 req/min
- CodeRabbit AI code review integration with
.coderabbit.yamlconfiguration - Pre-commit hooks for code quality checks (ruff, bandit, trailing whitespace, etc.)
- Comprehensive type annotations throughout the codebase
- 33 new mock-based tests for
delete.py(81% coverage) - 12 new mock-based tests for
scan.py(84% coverage) - 13 new tests for query sanitization function
slowapidependency for rate limiting
- Updated pre-commit hook versions to latest stable releases
- Improved code formatting consistency (double quotes, trailing commas, whitespace)
- Enhanced function signatures with multiline formatting for better readability
- Normalized code style across Python, JavaScript, CSS, and HTML files
- All Gmail service files now use thread-safe state methods instead of direct dictionary mutation
- Auth modules updated to use thread-safe state access patterns
- API action handlers use
bodyparameter name to avoid FastAPIRequestconflicts
- Timezone handling in CSV filename generation (now uses UTC)
- Missing return type annotations in multiple functions
- Closure variable binding in batch callback functions
- Test coverage improvements with proper mock assertions
- Boolean positional argument pattern in
mark_important_background - Race condition vulnerability in global state management
- State mutation bug where property accessors returned copies (mutations were discarded)
- All 192 tests now passing (up from 178 with 2 failures)
1.0.0 - 2024-11-29
- Initial release
- Bulk unsubscribe functionality with one-click support
- Delete emails by sender with bulk operations
- Mark emails as read in bulk
- Smart filtering options (age, size, category, sender, label)
- Docker support for all platforms
- Gmail API integration with batch requests
- Privacy-first architecture (runs 100% locally)
- Gmail-style user interface
- Label management (create, apply, remove)
- Archive emails functionality
- Mark emails as important/unimportant
- Download emails as CSV export