release_2.9.0
·
25 commits
to master
since this release
Bug Fixes
- Fixed similarity calculation for empty strings (both Levenshtein and Jaro-Winkler now return 100% instead of NaN or 0)
- Handle
InvalidWmpVersionExceptionin audio service to prevent crashes on systems with incompatible Windows Media Player versions - Removed redundant error logging when right-click context menu is created without a selected image path
- Fixed error handling during application shutdown to catch and ignore disposal exceptions gracefully
Update Check Refactoring
- Added
UpdateCheckOrchestratorservice as a proper orchestration layer for update checking, separating concerns between API calls and notification display - Added
UpdateNotificationInforecord for cleaner update notification flow - Enhanced error logging in
GitHubReleaseService(network errors, timeouts, and JSON parse errors are now properly logged)
UI Improvements
- File extensions in the Settings window are now automatically sorted alphabetically when added
- Added tooltips to progress indicators, loading overlays, empty state messages, and the missing covers label for better accessibility
- Added visual border styling to the extensions list in Settings
Enhanced Error Handling & Logging
BugReportModel.FromExceptionnow safely handles null exceptions- Improved robustness of the image save workflow with retry logic for directory write permission tests
- Added a fatal error dialog when the application fails during startup, preventing silent crashes
- Updated internal log method naming for consistency
Dependency Updates
- coverlet.collector: 10.0.0 → 10.0.1
- FluentAssertions: 8.9.0 → 8.10.0
- Magick.NET-Q16-AnyCPU: 14.13.0 → 14.13.1
- MessagePack: 3.1.4 → 3.1.6
- Microsoft.Extensions.DependencyInjection: 10.0.7 → 10.0.8
- Microsoft.Extensions.DependencyInjection.Abstractions: 10.0.7 → 10.0.8
Test Coverage
- Added comprehensive unit tests for
ButtonFactory,UpdateCheckOrchestrator,GitHubReleaseResponse,UpdateCheckResult,SettingsWindow, andNullAudioService - Expanded test coverage for edge cases in
SettingsManager,MameDataService,ImageProcessor,ImageLoader,NgramIndex,SimilarityCalculator, andErrorLogger
Full Changelog: release_2.8.0...release_2.9.0