release_2.2.0
·
16 commits
to master
since this release
Testing
- New unit test project (
BatchConvertToRVZ.Tests) with xUnit and Coverlet coverage - Tests covering models (
FileItem,GitHubRelease) and services (FileService,BugReportService,UpdateService,SharedHttpHandler)
Bug Report Improvements
- Refactored bug report payload to match the API schema (proper
message,applicationName,version,environment,stackTracefields) - Added structured sections in bug report messages (Environment Details, Error Details, Exception Details)
- Added truncation of message (4000 chars) and stack trace (8000 chars) fields to prevent oversized requests
- Removed unused fields from
SystemInfomodel (BaseDirectory,TempPath,ExceptionType,ExceptionMessage, etc.)
Error Reporting
- Added automatic bug report calls across
ConversionService,ExtractionService, andVerificationServicewhen processing fails - Added bug report calls in
MainWindowfor drag-and-drop errors, file add failures, and URL open errors
FileService Cleanup
- Streamlined
FileServiceto a pure utility with no dependencies — removedAction<string>logger parameter and all wrapper methods (file operations now useSystem.IOdirectly at call sites)
Enhanced Shutdown Reliability
- Window closing logic no longer blocks when the app is already shutting down via
Application.Current.Shutdown() - Added fallback to
Environment.Exit(0)if graceful shutdown fails, with a 3-second force-exit timeout
Folder Path Validation
- Input folder and verification folder validation now checks for null/empty paths and folder existence before file enumeration
- Clear error messages logged when folder paths are invalid
Verification: Include Subfolders
- New "Include subfolders" checkbox on the Verification tab — allows recursive scanning for RVZ files
- Verification file count message now indicates whether subfolders were included
UI Polish
- Added tooltips across the UI: file list labels, Select/Deselect buttons, statistic cards, extraction overlay, and output format selector
- Improved drag-and-drop tooltip hints on DataGrids
Dependencies
- SharpCompress updated from 0.47.4 to 0.48.1
Internals & Maintainability
AssemblyInfo.csnow exposes internals to the test project (InternalsVisibleTo)- Async naming convention:
TryDeleteFile→TryDeleteFileAsync,TryDeleteDirectory→TryDeleteDirectoryAsync UpdateServiceandBugReportServicemethods madeinternalfor testability- Removed
.DotSettings.userfiles from tracking; added to.gitignore
Full Changelog: release_2.1.0...release_2.2.0