✨ Features
Performance
- Add direct I/O bypass for Linux (
O_DIRECT), macOS (F_NOCACHE), and Windows (FILE_FLAG_NO_BUFFERING) to reduce memory pressure during writes - Add zero-copy ring buffer for data transfer between download and write threads, reducing CPU overhead
- Add asynchronous cache file writer to overlap download and disk I/O operations
- Dynamically adjust write queue depth based on available system memory, tuned for more aggressive performance
- Add sequential read hints (
FADV_SEQUENTIAL,F_RDAHEAD) during verification for better prefetching - Track detailed performance metrics for network, decompression, and write phases
- Use Windows IOCTLs (
IOCTL_DISK_DELETE_DRIVE_LAYOUT) for faster disk preparation instead of diskpart - Add performance data analysis tool for debugging slow writes (Press CTRL + SHIFT + P, save the JSON, attach to a new Issue).
Drive Handling
- Switch drive polling from fixed 1-second interval to adaptive mode (fast during selection, paused during writes)
- Fix NVMe namespace detection on Linux to correctly identify NVMe drives by parsing
/sys/class/nvme/ - Suppress Windows "Insert a disk" error dialog when accessing empty removable drives
- Fix macOS APFS volume handling to correctly identify child partitions
- Allow virtual disks to be treated as 'system' drives on Windows & Linux (macOS was supported from 2.0.0)
User Interface
- Add password field component with show/hide toggle button
- Add type-to-search in combo boxes with backspace support to delete characters
- Add Enter key to open combo box dropdown when focused
- Show device and OS names with tooltips when text is truncated
- Restructure countdown timer before write confirmation dialog can be accepted
- Fix bottom padding in write confirmation dialog
- Reintroduce multiple SSH key support
Accessibility
- Add proper focus order and keyboard navigation for screen readers across all dialogs
- Move accessibility description properties to centralized form label component
macOS
- Add file type filter popup to native save dialogs (matching Finder behavior)
- Request location permission asynchronously to avoid blocking the UI when detecting WiFi networks
- Add dark mode, tinted and clear Liquid Glass icon variants using Icon Composer for proper menu bar appearance
Linux
- Fix X11 authorization when running AppImage as root via
xhostand properXAUTHORITYhandling - Install scalable SVG icon instead of fixed-size PNG for better HiDPI support
Windows
- Migrate file dialogs from legacy
GetOpenFileNameAPI to modernIFileDialogCOM interface - Fix file dialog filter string requiring double-null termination
- Fix scroll direction on ImComboBox
Customization
- Allow SSH public key authentication without requiring a username/password to be set
- Fix missing user creation block when not enabling SSH
Networking
- Add automatic fallback from HTTP/2 to HTTP/1.1 after repeated failures
- Log HTTP protocol version used on successful downloads
- Skip error dialogs when user cancels download mid-transfer
- Properly close file handles when operations are cancelled
Other
- Add file logging support (--log-file command line argument)
- Re-use ring buffer memory for SHA256 verification instead of allocating new buffers
- Validate
init_formatfield in OS list JSON and log warnings for invalid entries - Extract clean version string (X.Y.Z) for telemetry instead of full build string
- Add privilege escalation support for elevatable application bundles
🐛 Bug Fixes
- Fix SSH key file dialog filter on Windows (was passing list instead of string)
- Fix Italian translation inconsistencies
- Fix icon installation path for Linux desktop integration
- Fix cloud-init user-data generation for Pi Connect configuration
- Remove
O_SYNCflag from file operations (was causing unnecessary performance penalty)
🌍 Internationalization
- Add Romanian translation
- Add Italian translation
- Add Czech translation
- Updated Russian translation
- Updated French translation
- Update translations for new MacFile and NativeFileDialog strings
- Add en-US translation
🎨 Icons
- New Windows and Linux application icons
- macOS icon with light/dark mode variants
- Add scripts to regenerate platform icons from source SVG
What's Changed
- 2.0.2: Refinement by @tdewey-rpi in #1314
- Romanian translation added by @valimaties in #1350
- Update Portuguese translation by @hugok79 in #1353
- Translate strings into French by @martignoni in #1323
- Czech translation added by @walken11 in #1375
New Contributors
- @valimaties made their first contribution in #1350
- @walken11 made their first contribution in #1375
Full Changelog: v2.0.1...v2.0.2