🧱 Architecture & Build System
- Introduced Nix Flake support (#336)
- Removed obsolete CI workflows (Clazy analysis, Flatpak build, etc.)
- Optimized build scripts: enabled parallel jobs, cleaned up project structure, and added Debug configuration support (#435, #429, #421)
- Refactored CMakeLists.txt for static linking on Windows with MinGW (#422)
- Updated .gitignore to exclude temporary build artifacts (e.g., libusb-build-temp, debug.log)
- Fixed openterfaceQT.pro to enable reliable source builds (#448)
🔌 Device Management & Hotplug
- Improved device detection logic to prevent duplicate device entries (#470)
- Refactored device enumeration: extracted WinDeviceEnumerator and enhanced cross-platform discovery (#133, #135)
- Extended VID/PID mapping to support new devices like MS2109S, with better fallback handling on Linux (#469, #451)
- Added platform-specific chip type identification in getChipTypeForDevice (#451)
- Increased target hotplug timeout to 10 seconds for more reliable detection (#451, #452)
- Fixed missing USB host-target status checks during connection validation (#431, #132)
📡 Serial Communication
- Refactored SerialPortManager for robust initialization, opening, and closing across platforms (#468, #465, #464, #462, #141, #140)
- Implemented platform-specific serial port cleanup (Windows/Linux) (#465)
- Resolved serial port access issues after hotplug events (#464)
- Added data validation and bounds checking to prevent buffer overflows (#445)
- Unified serial-related logging under a dedicated category
- Enabled asynchronous CMD_GET_INFO handling for more reliable baud rate detection
- Fixed memory overflow issues in serial and FFmpeg backend components (#436)
- Send auto-reset command before and after stress testing (#473)
- Fixed usbstatuscheck timer not stopping properly (#471)
- Stop active timers upon device disconnection to prevent crashes (merged #472 and #474)
🖥️ Video & Image Processing
- Implemented hardware-accelerated decoding via TurboJPEG and CUDA in FFmpeg backend, with CPU fallback
- Migrated all frame processing from QPixmap to QImage for improved thread safety and performance (#434, #436)
- Moved video scaling logic into the FFmpeg backend and clamped output to viewport size (#429, #129)
- Improved pixel scaling compatibility on Linux by switching format from RGB32 to BGRA
- Added detailed timing logs for video frame updates to identify rendering bottlenecks
- Disabled antialiasing in video rendering to reduce CPU/GPU load (#441)
- Fixed mouse lag caused by CPU-based video rendering (#441)
🖱️ User Interface & Interaction
- Added splash screen with SVG logo integration (#454)
- Fixed application icon not updating correctly (#459)
- Improved video pane resizing logic with a small delay to ensure layout stability after updates (#467)
- Refactored recording controller: integrated status bar feedback and removed unused UI elements (#421)
- Fixed mouse alignment issue with uConsole expansion card (#449)
🔧 Diagnostics & Firmware Management
- Introduced hardware diagnostics dialog with serial port validation and optional GET_INFO suppression (#450, #139)
- Fixed critical bugs in diagnostics dialog logic and serial checks (#455, #142)
- Added low-baudrate communication test suite (#459)
- Refactored high-baudrate test to attempt multiple rates with enhanced error reporting (#451)
- Added firmware update support for MS2109S, including resolution and FPS readout (#143, #144)
- Fixed Mini KVM firmware flashing failure (#143)
- Implemented firmware manager for restore/write operations (#102)
- Fixed missing progress bar during 2109 firmware writes (#458)
🐧 Cross-Platform Support (Linux / Windows)
- Improved stability on Fedora (#461)
- Fixed multiple Linux build errors across distributions (#430, #130, #131)
- Corrected ARM64 package naming (#426)
- Fixed Windows Portable build issues (resolved undefined symbols like impsetjmp) (#420, #128)
- Added libusb-1.0.dll compatibility copy with verification in Windows builds (#440)
- Enabled memory leak detection in Debug mode on Windows
- Enhanced GStreamer plugin loading and multimedia backend priority handling (#424, GlobalSetting)
📦 Versioning & Release Automation
- Refactored version parsing to cleanly separate APP_VERSION from Git tags (#458, #463)
- Automated version bumping, Git tagging, and cross-platform build triggering via REST API dispatch
- Standardized naming for Windows installer and portable executables (#438, #440)
- Updated AppStream metainfo: fixed type errors and removed duplicate release entries (v0.5.8, v0.5.9)
- Prepared Flatpak release assets
- Version progression:
0.5.7.338 → 0.5.8.005 → 0.5.9 → 0.5.9.006 → 0.5.11.015 → 0.5.12
🌍 Localization & Documentation
- Added Spanish translation (#424)
- Published uConsole debugging guide (including factory reset instructions)
- Added VS Code launch configuration for easier debugging
✅ Summary of Improvements
- Deduplicated overlapping fixes (e.g., device disconnection handling, hotplug timeout).
- Standardized terminology: e.g., “serial port” instead of “com port”, “video pane” consistently capitalized.
- Grouped by functional area to support maintainability and release note generation.
- Highlighted user-facing changes (UI, diagnostics, firmware) separately from internal improvements.