✨ Features
Performance
- Implement bottleneck detection and real-time progress updates showing network, decompression, or write-bound status
- Add detailed write timing breakdown for hypothesis testing and performance analysis
- Skip periodic sync when direct I/O is enabled to improve throughput
- Enhance async I/O support and configuration options across all platforms
Networking
- Implement comprehensive network monitoring across all platforms to detect connectivity changes and automatically retry OS list fetching
- Add automatic fallback and retry logic when network connection is restored
- Introduce CurlFetcher and CurlNetworkConfig for improved network operations with better error handling
- Add CA certificate bundle detection for AppImage compatibility on Linux distributions with non-standard CA paths
- Enable file:// protocol support in curl configuration for local repository testing
Custom Repositories
- Add rpi-imager:// URI scheme for deep-linking to custom OS repositories (e.g., rpi-imager://open?repo=https://example.com/repo.json)
- Register .rpi-imager-manifest file type association on macOS (UTI), Windows (registry), and Linux (MIME)
- Show custom repository host in window title bar with punycode encoding to prevent IDN homograph attacks
- Add confirmation dialog with security delay for remote repository URLs
Drive Handling
- Detect and handle counterfeit storage devices that may hang during I/O operations
- Add timeout mechanism for critical operations like BLKDISCARD and writing to the end of the device
- Add debug option to skip end-of-device operations for users with problematic cards
- Add support for NVMe over Fabrics (BusTypeNvmeof) bus type on Windows
- Enhance storage bus type recognition and device classification
- Improve drive filtering and system identification logic on Linux
User Interface
- Add sticky language preference that remembers user selection across sessions
- Enhance title display with offline status indication in the main window
- Improve text wrapping and marquee scrolling throughout the UI
- Make DebugOptionsDialog height responsive to window size
Customisation
- Enhance WiFi configuration for open networks using key_mgmt=NONE
- Refine cloud-init user data and network configuration generation
- Add initFormat parameter to CLI setImageCustomisation call
Windows
- Enhance uninstallation to clean up old installation directories and registry entries left by previous installers
- Improve user prompts during install/uninstall for detecting previous installations
CLI
- Add note about using the --repo flag to load local os_list_local.json files
- Fix error message displayed when CLI build is run without sudo
- Use ANSI escape sequences for _clearLine for better terminal compatibility
🐛 Bug Fixes
- Fix language selection on Desktop not persisting correctly
- Fix button layout for permission warning dialog
- Fix async write IDs overlapping with cancellation markers
- Fix async cache hash not resetting on open, ensuring fresh computation
- Fix unmounting logic and error handling during write operations
- Fix hardware and software capability checks for case insensitivity
- Fix display of customRepoHost in repository dialogs
- Fix translation of permissions-message dialog (strings were being translated too early)
- Fix macOS build configuration
🌍 Internationalisation
- Updated Spanish translation
- Updated Czech translation
- Updated French translation (multiple updates)
- Updated Russian translation
- Updated Portuguese translation
- Add new translations and error messages for multiple languages
📦 Dependencies
- Update bundled library versions
- Update timezone data version
- Update capital cities database