🎉 New Features
Crash Reporting System
- Crash report queue with admin UI
- Configurable retry strategy with exponential backoff
- Settings UI for crash reporting configuration
- Integration with metadata-relay for centralized error tracking
End-to-End Testing
- Playwright testing infrastructure with helpers and page objects
- Docker Compose environment with mock Prowlarr and qBittorrent services
- GitHub Actions CI integration
- Comprehensive test cases for authentication and core flows
Media Library Improvements
- Complete migration to relative path storage for media files
- Library type compatibility validation
- Type mismatch detection and audit tools
- Automatic database backups before migrations
Type Safety & Code Quality
- Replaced map-based types with dedicated structs across all domains
- Custom Credo checks for type safety
- Eliminated all 52 compilation warnings with warnings-as-errors enforcement
🐛 Bug Fixes
- Improved database health check reliability in tests
- Centralized metadata relay URL configuration
- Resolved config setting validation errors
- Fixed QBittorrent form encoding for add_torrent requests
- Improved crash reporter error messages and stacktrace formatting
- Fixed metadata refresh to correctly extract TMDB IDs
- Resolved database locking issues on large imports with batched processing
- Automatically fetch episodes on TV series creation
🔧 Technical Changes
- Split CI workflow into separate test and Docker jobs
- Decoupled E2E tests from main CI workflow
- Added master Docker tag on every push to master branch
- Added beta release workflow with Docker image tagging
- Disabled code coverage threshold temporarily
- Enhanced test environment with seed scripts and mock services
🚀 Deployment Notes
- Database migrations include automatic backups
- Media files now use relative paths (backward compatible)
- Crash reporting is opt-in via settings
Full Changelog: v0.4.7...v0.5.0