Release v1.3.1 - April 15, 2026
π οΈ NetSpeedTray v1.3.1: Update Checker, Support Dialog & Bug Fixes
A focused stability and quality-of-life release that adds automatic update checking, a support/donate dialog, and fixes 12 bugs reported since v1.3.0 β including RDP crashes, dialog behavior issues, and widget rendering problems.
β¨ New Features
Update Checker: NetSpeedTray now checks for new releases via the GitHub API on startup (every 24 hours) and offers a "Check for Updates" option in the right-click menu. Users can download the latest version, skip a specific release, or disable the check entirely in Settings > Behavior.
Support Dialog: A new "Support this Project" menu item provides links to GitHub Sponsors, Ko-fi, Buy Me a Coffee, and Star on GitHub β making it easy to support the project in your preferred way.
LibreHardwareMonitor Notice: When temperature or power readouts are enabled but no data source is detected after startup, a one-time notification explains that LibreHardwareMonitor (or OpenHardwareMonitor) is required and links to the download page.
RDP Session Detection: Automatic detection of Remote Desktop sessions via GetSystemMetrics(SM_REMOTESESSION). GPU monitoring is skipped and App Activity displays an informational message instead of attempting unreliable psutil queries in virtualized environments.
π¨ UI Improvements
Context Menu Grouping: Right-click menu items are now organized into logical groups with separators (windows / updates & support / exit) for easier scanning.
Global Window Icon: All application windows and dialogs now display the NetSpeedTray icon in the title bar.
README Overhaul: Rewrote the README to reflect all v1.3.0/v1.3.1 features including hardware monitoring, App Activity, display modes, and RDP detection.
π Bug Fixes
App Crash in RDP (Windows Server): GPU polling errors are now caught and logged independently without incrementing the circuit breaker's consecutive error counter, preventing GPU failures from killing the entire monitor thread.
App Sluggishness in RDP: Wrapped psutil.net_connections() in a daemon thread with a 2-second timeout to prevent the App Activity window from stalling the polling loop in RDP and low-privilege environments.
Graph Render Crash: Fixed float() argument must be a string or a real number, not 'datetime.datetime' by requesting raw numeric timestamps from the database and adding a defensive type guard before numpy conversion.
Color Coding Always Yellow/Orange: Fixed color coding failing on configs migrated from v1.2.6 by replacing the broken threshold repair logic with a cross-field guard that resets both thresholds to defaults when the low < high invariant is violated.
Swap Upload/Download: The "Swap upload/download" setting now correctly swaps both speed values/units and arrow icons together.
Vertical Taskbar Layout: Widget layout mode is now determined from taskbar edge position instead of the unrelated is_small_taskbar() height check.
Config Migration Resetting Display Mode: Removed side_by_side from the display mode downgrade rule β it gracefully degrades to network-only at render time instead of silently resetting.
Widget Flickering: Eliminated per-paint Win32 taskbar enumeration by caching the layout mode and refreshing only on taskbar geometry changes.
High-DPI Widget Clipping: Widget size constraints are now scaled by the display's DPI factor, preventing text truncation on 4K screens.
Dialog Close Hiding Widget: Fixed all popup dialogs hiding the widget when closed, by correctly parenting dialogs to the widget.
nvidia-smi Console Flash: Hidden the console window that briefly appeared every poll cycle when using nvidia-smi for GPU temperature/power readings.
Widget Spacing with Temp/Power: Tightened layout width calculations for temperature and power suffixes, reducing excess gap between the widget and the system tray.
β οΈ Known Limitations
Temperature readings are displayed in Β°C only. Fahrenheit support is planned for v1.4.0.
π‘οΈ Security
Updated Pillow, pytest, and Pygments dependencies for CVE fixes.
π Localization
All new UI strings (update checker, support dialog, LHM notice) have been translated across all 9 supported locales: English, German, Spanish, French, Korean, Dutch, Polish, Russian, and Slovenian.