[Bug]: Windows: SmartShift remap stops until agent restart
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 172
Description
### Component
CLI / background agent
### OpenLogi version
0.8.1
### Operating system
Windows 11 Home 64-bit, build 26200
### Device & connection
Logitech MX Master 3, Bluetooth direct (no receiver). No Logi Options+ package or process found.
### What happened?
An OpenApplication action bound to the SmartShift/DpiToggle button (CID 0x00c4) works right after an agent restart, then stops working after extended runtime. When it fails, native SmartShift resumes.
Observed during a failure:
- `getCidReporting` on CID 0x00c4 reports `diverted=false` — the agent's diversion was dropped.
- Manually writing `diverted=true` succeeds and sticks, but the button is swallowed and no action runs.
- The agent itself stays responsive: inventory IPC answers and `openlogi diag dpi --device "MX Master"` succeeds.
The device/command paths remain healthy while the gesture-capture consumer is dead. From reading the source, the capture session's liveness check treats transport errors other than Timeout/NoResponse as "healthy", so the dead session is never torn down and state is never re-armed. A proposed fix is under review in #1124.
The exact trigger and timing are unknown; it appeared after extended runtime.
### Steps to reproduce
Not deterministic — observed to appear after extended runtime.
1. Windows 11, MX Master 3 over Bluetooth-direct, OpenLogi v0.8.1 agent running.
2. Bind an action (e.g. OpenApplication) to the SmartShift/DpiToggle button; confirm it fires right after an agent restart.
3. Leave the machine running until the bound action stops firing and native SmartShift resumes.
4. Power-cycling the mouse (10 s off/on) does not restore capture; restarting the agent does.
### Diagnostics / logs
Not captured.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the capture-session liveness check and the getCidReporting path described in the report, then compare how transport errors are classified against Timeout/NoResponse. Review the proposed fix in #1124 and use `openlogi diag dpi --device "MX Master"` while checking that a SmartShift/DpiToggle binding survives an extended run, remains diverted, and still invokes its action.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100