release_1.3.0
·
21 commits
to master
since this release
New Features
- Proxy Support — Configure an HTTP proxy (host, port, username, password) via a new settings dialog for environments that require it.
- File Extension Filtering — New dialog to customize which file extensions are recognized as ROM files when scanning folders.
- Settings Encryption — Sensitive data (GitHub token, proxy password) is now encrypted using Windows DPAPI before being saved to disk.
- Systems List Caching — The available systems list is cached locally, resulting in faster startup and offline resilience.
- Retry with Exponential Backoff — Transient network errors (timeouts, 5xx, 429) are automatically retried with intelligent exponential backoff.
- Circuit Breaker — Protects against hammering distressed servers during outages by tracking consecutive failures and pausing requests.
Improvements
- Better Error Messages — More descriptive error messages and improved GitHub rate-limit handling throughout the app.
- Network Resilience — Fallback logic when hitting GitHub rate limits or transient errors, reducing failed operations.
- GitHub Branch Detection — Improved automatic detection of the correct repository branch for downloads.
- Cancellation Handling — More robust cancellation propagation across all services.
- Download Process Optimization — Optimized the download pipeline for better performance and reliability.
- Logging & Diagnostics — Refined logging context and improved error handling across the application.
Testing
- Comprehensive Unit Test Suite — Added a full xUnit test project covering models, services, helpers, converters, commands, ViewModels, settings manager, and integration tests.
- Improved Testability — Refactored services with injectable dependencies to support proper unit testing.
- Disposal Tests — Added tests to verify proper resource cleanup.
Code Quality
- Applied code analysis suggestions and cleaned up unused code (removed
AsyncRelayCommand, dead code, etc.). - Improved MVVM structure with better separation of concerns.
- Generated regex compiled at build time for better performance.
Full Changelog: release_1.2.0...release_1.3.0