Releases: strain08/LGSTrayEx
Release 3.2.0
✨ New Features
- ✅ Centurion protocol - support for headsets G522 (tested), PRO X 2, etc.
All credits for Centurion protocol reverse-engineering and providing a c# implementation go to:
Ken Ksanislo @ksanislo
What's Changed
- fix: 0x50 variant TX frames missing device address byte by @ksanislo in #19
- Here's another PR covering what I saw in the G522 logs from the user. by @ksanislo in #20
- refr: FrameLayout cleanup and passive transport guard by @strain08 in #21
- Feat/centurion headset battery by @strain08 in #22
New Contributors
Full Changelog: v3.1.9...v3.2.0
Release 3.1.9
✨ New Features
- ✅ UI - configurable colors for battery level bar in icon mode, dark/light theme
Full Changelog: v3.1.8...v3.1.9
Release 3.1.8
What's Changed
🔴 Bug fixes and improvements
fix: system resume event from S3 was handled twice
Full Changelog: v3.1.7...v3.1.8
Release 3.1.7
What's Changed
🔴 Bug fixes and improvements
impr: add option to limit log size
fix: regression, B330 was not detected
fix: possible deadlock in OnRefChanged (possible ui lockup)
fix: named pipe crash (possible shutdown crash)
fix: race condition when disposing read threads (possible shutdown crash)
fix: exclude receivers from mode switch tracking
Full Changelog: v3.1.6...v3.1.7
Release 3.1.6
What's Changed
🔴 Bug fixes and improvements
-
impr: numeric display added configurable colored battery bar to better identify multiple devices
-
Modify Lightspeed device compatibility in README by @darmach in #11
New Contributors
Full Changelog: v3.1.5...v3.1.6
Release 3.1.5
What's Changed
🔴 Bug fixes and improvements
- impr: MQTT Removed per-device status sensor, added per host sensor,
- impr: MQTT Removed lwt option since new default functionality does not disturb battery readings
- fix: MQTT Reconnect after server restart and sleep wake up
- impr:WebServer use stable device signature for all devices
- fix: mode-switch: mode switch delay active only when suppressModeSwitchNotifications is true
- Update readme.md - add g705 by @nyakze in #9
New Contributors
Full Changelog: v3.1.4...v3.1.5
Release 3.1.4
✨ New Features
- ✅ MQTT client, advertise in Home Assistant
Only Native devices are reported.
Http server must be disabled for MQTT reporting to work
SeeappSettings.tomlfor new configuration options.
🔴 Bug fixes and improvements
- fix: AppSettings: merge and repair between releases
- fix: AppSettings: wrong or missing settings should no longer crash application
- fix: Mode-switch: usb device no longer detected after unplug
- impr: UI: Mode-switch devices supress notifications and "?" mark when plugging/unplugging usb cable, configurable
- fix: UI: fixed battery thresholds notifications, added more tests
- impr: HTTPServer: added new
<is_online>key to http xml - impr: HTTPServer:
batteryPercentageno longer reports -1 as device off. When device off it reports last known value. - fix: Multi-User: crash and other issues when running in multi-user multi-instance setup. See MULTI_USER_HOW_TO.MD
Full Changelog: v3.1.3...v3.1.4
Release 3.1.3
What's Changed
Full Changelog: v3.1.2...v3.1.3-strain08
✨ New Features
- ✅ Experimental support for monitoring devices that connect both wired and wireless
🔴 Bug fixes and improvements
- fix: better filtering/matching for battery events (removed band-aid 15% filtering)
- impr: retry with exponential backoff for hidpp commands
- impr: co-existence with logi apps
- impr: devices were reinitialized when a logiapp was launched
- impr: config options for tuning retry logic
- fix: potential race condition results in buffer overwrite before read in CommandCorrelator
- impr: distinct battery full / high threshold (almost full) notifications
- impr: ping device before requesting battery data (ensures device awake)
- fix: polling was not stopping immediatly on request
- fix: other race condition fixes and event leaks
v3.1.2
What's changed
Full Changelog: v3.1.1...v3.1.2
✨ New Features
- ✅ Ghub and Native devices: identifiable by source in menu and tray
- ✅ Option keepOfflineDevices: configures tray icon behaviour
🔴 Bug fixes and improvements
- Better device management: selection recall, workaround ghub device changing id's
- fixed "Rediscover devices" menu did not refresh icons
- Improved suspend/resume behaviour: devices are properly managed across S3 and S0 (Modern Standby)
- App correctly detects if another instance is running
- UI improved font rendering for numeric display
- UI improved icon rendering
- UI improved charging indicator in numeric display
- Added logging options in appsettings.toml
v3.1.1
Full Changelog: v3.1.0...v3.1.1
** Migrated to .NET 10, we now have dark menu !
Known issues
** The single instance mutex crashes the new instance
What's changed
Critical Stability Fixes
This release focuses on eliminating crashes and fixing critical bugs that affected icon management and thread safety.
The Big Fixes:
- ✅ No more duplicate/ghost icons in the system tray
- ✅ No more crashes during theme changes or rapid device reconnections
- ✅ No more application freezes during device discovery
- ✅ Prevents multiple instances from running simultaneously
🔴 Critical Bug Fixes
Fixed: Orphaned Icons in System Tray
Problem: Icons would remain in the taskbar even after devices were removed from the menu, creating "ghost icons" you couldn't remove.
Fixed:
- Icons are now properly disposed when devices are removed
- Stale device stubs cleaned up correctly
- No more duplicates when devices reconnect with new IDs
Fixed: Application Crashes
Problem: Application could crash when:
- Changing Windows theme (light/dark mode)
- Multiple devices updating simultaneously
- Rapidly checking/unchecking devices
- Using "Rediscover Devices" button
Fixed:
- Thread-safe ref counting prevents race conditions
- Proper disposal pattern eliminates access violations
- Timer callbacks properly synchronized
- Collection access marshaled to UI thread
Fixed: Visual Glitches
Problem: Main icon would flicker during device rediscovery
Fixed: Added 500ms debounce delay before showing main icon
✨ New Features
Single Instance Application
- Ensures only one copy of LGSTray runs at a time