Pre-flight checklist
Which part of OpenLogi?
Both
OpenLogi version
0.6.22 (master at bdaa2e3, reproduced in a local development build)
Operating system
macOS
OS version & architecture
macOS 26.5.2, Apple Silicon
Device model
MX Master 3S connected over Bluetooth direct, with an offline Unifying-paired device entry also present
How is the device connected?
Bluetooth (direct, no receiver)
Affected area(s)
What happened?
When the persisted selected_device points to an offline device while another configured device is online, the agent still uses the offline device as the live bindings and HID++ capture target. Programmable buttons on the connected device then stop working even though that device is online and visible in the GUI.
The runtime selection should prefer the saved GUI selection while it is online, fall back to an online device while it is offline, and preserve the saved selection only when every device is offline. The persisted GUI preference should remain unchanged so it can resume when that device reconnects.
The root cause is that pick_current honors selected_device without checking AgentDevice::online. An online-only inventory transition also does not rebuild the runtime target when device keys and routes remain unchanged.
Steps to reproduce
- Configure two devices and leave one online.
- Disconnect the other device and keep its identity in the device list.
- Select the offline device in the GUI so it becomes
selected_device.
- Press a remapped auxiliary or function button on the online device.
The button action does not fire. Selecting the online device restores it.
Diagnostics report
Not captured. The behavior was reproduced in a local debug build with one online Bluetooth-direct device and one offline Unifying device.
openlogi list output
Not captured.
Logs
No relevant error is logged; the agent deterministically selects the offline saved identity.
macOS permissions (if applicable)
Pre-flight checklist
masterbuild.Which part of OpenLogi?
Both
OpenLogi version
0.6.22 (
masteratbdaa2e3, reproduced in a local development build)Operating system
macOS
OS version & architecture
macOS 26.5.2, Apple Silicon
Device model
MX Master 3S connected over Bluetooth direct, with an offline Unifying-paired device entry also present
How is the device connected?
Bluetooth (direct, no receiver)
Affected area(s)
What happened?
When the persisted
selected_devicepoints to an offline device while another configured device is online, the agent still uses the offline device as the live bindings and HID++ capture target. Programmable buttons on the connected device then stop working even though that device is online and visible in the GUI.The runtime selection should prefer the saved GUI selection while it is online, fall back to an online device while it is offline, and preserve the saved selection only when every device is offline. The persisted GUI preference should remain unchanged so it can resume when that device reconnects.
The root cause is that
pick_currenthonorsselected_devicewithout checkingAgentDevice::online. An online-only inventory transition also does not rebuild the runtime target when device keys and routes remain unchanged.Steps to reproduce
selected_device.The button action does not fire. Selecting the online device restores it.
Diagnostics report
Not captured. The behavior was reproduced in a local debug build with one online Bluetooth-direct device and one offline Unifying device.
openlogi listoutputNot captured.
Logs
No relevant error is logged; the agent deterministically selects the offline saved identity.
macOS permissions (if applicable)