AprilNEA / AprilNEA/OpenLogi

[Bug]: button capture stalls when one mouse switches between Bolt receivers

Open
#1,196 0 comments 0 reactions 0 assignees View on GitHub
area: hid platform: all type: bug
Dominant language
Rust
Stars
21k
Forks
675
Avg merge
2d 5h
Merged PRs (30d)
172

Description

### Pre-flight checklist

- [x] Existing issues were searched and this is not a duplicate.
- [x] This was reproduced on the latest release, OpenLogi 0.8.3.
- [x] Logi Options+ was fully removed before testing.

### Which part of OpenLogi?

GUI (desktop app)

### OpenLogi version

0.8.3

### Operating system

macOS

### OS version & architecture

macOS 27.0 (26A5421a), Apple Silicon

### Device model

MX Master 4 paired with two Logi Bolt receivers

### Connection

Logi Bolt receiver

### Affected areas

- [x] Button remapping
- [x] Other: HID++ gesture and thumb-wheel capture

### What happened?

One MX Master 4 is paired with two physical Bolt receivers on separate
Easy-Switch channels. OpenLogi correctly retains one serial-backed device
configuration and reports the old receiver route offline and the new route
online.

After switching the mouse from receiver A to receiver B, captured controls stop
working, including remapped buttons and the thumb wheel. Restarting the
OpenLogi agent immediately restores all mappings on receiver B.

The agent repeatedly attempts to restore the capture state through receiver A,
which the mouse has already left. That pending restoration blocks the capture
session for receiver B.

Expected behavior: capture should hand off automatically to the mouse's newly
active receiver while retaining the same serial-backed configuration.

### Steps to reproduce

1. Pair one MX Master 4 with two Bolt receivers on different Easy-Switch channels.
2. Keep both receivers connected to the same Mac.
3. Start with the mouse active through receiver A and confirm remapped controls work.
4. Switch the mouse to receiver B.
5. Confirm inventory reports A offline and B online.
6. Try a remapped button or diverted thumb wheel.
7. Restart the OpenLogi agent and confirm the mappings immediately work again.

### `openlogi list` output

Receiver IDs and serial number have been redacted. Both records have the same
mouse serial number.

Logi Bolt Receiver ()
└─ slot 4 ○ MX Master 4

Logi Bolt Receiver ()
└─ slot 2 ● MX Master 4

### Logs

control capture active index=4 buttons=4 thumbwheel=true
failed to restore control mapping control="captured control"
failed to restore control mapping control="captured control"
failed to restore control mapping control="thumb wheel"
...repeats indefinitely...
openlogi-agent started
control capture active index=2 buttons=4 thumbwheel=true

### macOS permissions

- [x] OpenLogi has Accessibility permission.
- [x] OpenLogi has Input Monitoring permission.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the receiver handoff with the two-device setup and inspect the agent logs around control capture restoration. Use `openlogi list` to verify the old route is offline and the new route is online, then trace the capture state for the remapped buttons and thumb wheel. Done means controls work on receiver B without restarting the agent and the repeated restoration failures stop.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.