AprilNEA / AprilNEA/OpenLogi

[Bug]: Version 2.6.24 and newer: button mapping not working

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

Description

### Pre-flight checklist

- [x] I searched [existing issues](https://github.com/AprilNEA/OpenLogi/issues?q=is%3Aissue) and this is not a duplicate.
- [x] I am on the [latest release](https://github.com/AprilNEA/OpenLogi/releases/latest) or a recent `master` build.
- [x] I quit **Logi Options+** before running OpenLogi (the two apps fight over HID++ access and only one can own a receiver at a time).

### Which part of OpenLogi?

GUI (desktop app)

### OpenLogi version

2.6.24 (and all versions after)

### Operating system

Linux

### OS version & architecture

Ubuntu 24.04 LTS

### Device model

Max Master 3 + unfied receiver

### How is the device connected?

Other / not sure

### Affected area(s)

- [x] Device discovery / detection
- [x] Button remapping
- [ ] DPI control
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Battery status
- [ ] Settings / configuration (TOML)
- [ ] Auto-update
- [ ] Menu bar / tray
- [ ] Other

### What happened?

Hi,

Thanks for this amazing tool. Really enjoy the effort in bring proper feature for MX Master to linux!

## Problem

Since version 2.6.24 button mapping stops working after a few seconds.

If I restart agent, it goes back working for a few seconds then stops.

(In the interface mouse also randomly disapears and then appears again, but seems unrelated to the button problem - at least it can fail with or without mouse showing in the interface)

You can see in the video bellow, I set the thumb button to be "mute". It initially not work, the button do an "alt+tab" as you can see in the video (all this alt tab in the video happened when I pressed the button).
If I kill the agent, and let the interface restart it, it suddenly start working (you can see the notification in the bottom right corner), but after a few seconds is stop working again:

https://github.com/user-attachments/assets/6501d9cc-8b71-4fce-ba06-3d9c6d082fb4

When I run with OPENLOGI_LOG=debug openlogi-agent in the latest version it actually works for longer (it stays working like 50% of the time)

## Debugging

I did a full Git bissect, and I was able to narrow down this commit for the first with problem:

7e568e5c2c224d0af9075b4f24ae9955126c13f2

Version I tested:
| version | broken/working | package |
| :--- | :---: | :--- |
| master at 68f88986e2455bdff4bae7d98b62acca5a079909 | broken | compiled from source |
| 0.8.1 | broken | deb package|
| 0.8.0 | broken | deb package |
| 0.7.10 | broken | deb package |
| 0.6.24 | broken | deb package and compiled from source |
| 7e568e5c2c224d0af9075b4f24ae9955126c13f2 | broken | compiled from source |
|47cb7cce75c963b9f333bc482d07bce054eab012| Works | compiled from source |
| 0.6.23 | Works | deb package and compiled from source |
| 0.6.22 | Works | deb package and compiled from source |

output for version 0.8.1:
```
$ openlogi-agent
2026-08-29T01:52:41.893665Z INFO openlogi_agent::overlay: helper started, pid 100931
2026-08-29T01:52:41.914829Z INFO openlogi_agent: openlogi-agent started
2026-08-29T01:52:41.914898Z INFO openlogi_agent: accessibility granted — installing OS mouse hook
2026-08-29T01:52:41.915385Z INFO openlogi_agent::server: IPC server listening
2026-08-29T01:52:41.925480Z INFO openlogi_agent_core::runtime::hook: OS input hook installed
2026-08-29T01:52:42.003089Z INFO gpui_linux::linux::platform: Compositor GPU hint: vendor=0x1002, device=0x73ff (from dev 226:128)
2026-08-29T01:52:43.982602Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:52:47.994542Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:52:52.020467Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:52:56.032388Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:53:02.932658Z WARN openlogi_agent_core::watchers::gesture: capture session ended unexpectedly, re-arming key="receiver:674eb606:slot:3"
2026-08-29T01:53:04.205556Z WARN openlogi_agent_core::watchers::gesture: capture session ended unexpectedly, re-arming key="receiver:674eb606:slot:3"
2026-08-29T01:53:05.263918Z INFO openlogi_device::session::gesture: control capture active index=3 gesture_sources=1 dpi_buttons=1 buttons=0 thumbwheel=false
2026-08-29T01:53:06.710192Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:53:21.863927Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:53:25.875848Z WARN openlogi_device::inventory::ledger: node probe failures exhausted the replay grace — surfacing the live result failures=4
2026-08-29T01:53:25.875893Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
^[2026-08-29T01:53:32.935861Z WARN openlogi_agent_core::watchers::gesture: capture session ended unexpectedly, re-arming key="unit:91d12fc6"
2026-08-29T01:53:33.935826Z WARN openlogi_agent_core::watchers::gesture: capture session ended unexpectedly, re-arming key="unit:91d12fc6"
2026-08-29T01:53:35.273391Z INFO openlogi_device::session::gesture: control capture active index=3 gesture_sources=1 dpi_buttons=1 buttons=0 thumbwheel=false
2026-08-29T01:53:39.989598Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:53:44.005533Z WARN openlogi_device::inventory::ledger: node probe failures exhausted the replay grace — surfacing the live result failures=4
2026-08-29T01:53:44.005599Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:53:48.019461Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:53:52.035383Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:53:56.048986Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:54:00.059244Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:54:04.073167Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:54:08.087096Z WARN openlogi_device::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:54:15.244652Z INFO openlogi_device::session::gesture: control capture active index=3 gesture_sources=1 dpi_buttons=1 buttons=0 thumbwheel=false

```

output for version 0.6.24 (Broken version):
```
$ target/0.6.24/openlogi-agent
2026-08-29T01:46:19.242820Z INFO openlogi_agent: openlogi-agent started
2026-08-29T01:46:19.242871Z INFO openlogi_agent: accessibility granted — installing OS mouse hook
2026-08-29T01:46:19.242951Z INFO openlogi_agent::server: IPC server listening
2026-08-29T01:46:19.244036Z INFO openlogi_agent_core::hook_runtime: OS input hook installed
2026-08-29T01:46:22.567881Z INFO openlogi_hid::gesture: control capture active index=3 gesture=true dpi_buttons=1 back_buttons=1 forward_buttons=1 thumbwheel=false
2026-08-29T01:46:28.933748Z WARN openlogi_hid::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:46:30.244683Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:31.244637Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:32.243889Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:33.244025Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:34.244196Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:34.533646Z WARN openlogi_hid::node_ledger: node probe failures exhausted the replay grace — surfacing the live result failures=4
2026-08-29T01:46:34.533680Z WARN openlogi_hid::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:46:35.244674Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:36.244643Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:40.133505Z WARN openlogi_hid::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:46:40.244627Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:41.244769Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:45.681357Z WARN openlogi_hid::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:46:46.244776Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:47.244331Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:51.233248Z WARN openlogi_hid::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:46:51.244651Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:52.243870Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:56.779129Z WARN openlogi_hid::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:46:57.243910Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:46:58.244619Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:47:02.359023Z WARN openlogi_hid::inventory: node probe keeps failing — retiring its channel before reopen
2026-08-29T01:47:03.244711Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:47:04.243909Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming

```
output for version 0.6.23 (That version still works!! Even though it show those errors) - similar from other working versions like 0.6.22:
```
$ target/0.6.23/openlogi-agent
2026-08-29T01:43:30.209092Z INFO openlogi_agent::server: IPC server listening
2026-08-29T01:43:30.209890Z INFO openlogi_agent: openlogi-agent started
2026-08-29T01:43:30.213661Z INFO openlogi_agent: accessibility granted — installing OS mouse hook
2026-08-29T01:43:30.216758Z INFO openlogi_agent_core::hook_runtime: OS mouse hook installed
2026-08-29T01:43:32.632056Z WARN openlogi_agent_core::hardware: wheel mode write failed error=DeviceUnreachable { index: 3 }
2026-08-29T01:43:33.213963Z WARN openlogi_agent_core::watchers::gesture: capture session for the active device ended unexpectedly, re-arming
2026-08-29T01:43:34.519583Z INFO openlogi_hid::gesture: control capture active index=3 gesture=true dpi_buttons=1 thumbwheel=false
2026-08-29T01:43:43.183531Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:43:46.703418Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:43:50.225128Z WARN openlogi_hid::node_ledger: node probe failures exhausted the replay grace — surfacing the live result failures=4
2026-08-29T01:43:50.225241Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:43:53.751323Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:43:57.273156Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:00.793188Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:04.313047Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:14.878865Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:18.398704Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:21.918545Z WARN openlogi_hid::node_ledger: node probe failures exhausted the replay grace — surfacing the live result failures=4
2026-08-29T01:44:21.918753Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:26.384478Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:29.904587Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
2026-08-29T01:44:33.426456Z WARN openlogi_hid::inventory: node probe keeps failing — dropping its channel to reopen next tick
```

### Steps to reproduce

1. get any version newer than 0.6.23
2. try to remmap the thumb button to another action
3. it will not work
4. restart agent
5. it will work for a few seconds and stop
6. get version 0.6.23 or 0.6.22
7. it works fine

### Diagnostics report

```markdown
### OpenLogi Diagnostics

**App**
- OpenLogi (GUI): v0.8.1 (release)
- Agent: v0.8.1 (connected)
- IPC protocol: GUI 28 / agent 28
- Inventory: ready
- OS: Linux (x86_64)
- Locale: pt-BR (UI: follow system)
- Accessibility: granted · Input hook: installed
- Launch at login: no · Menu bar: yes · Update check: on
- Running from: source build (dev)
- Config: schema 6 · 1 configured device(s) · thumbwheel 14

**Assets**
- Source: user cache · Index: loaded (210 models) · User cache: present
- Cache path: ~/.local/share/openlogi/assets · Bundle assets: absent

**Devices (3)**
- MX Master 3 — mouse
- Connection: Logi Unifying receiver · Online: yes · Battery: 20% (discharging, low)
- Capabilities: buttons=yes, pointer=yes, lighting=no
- DPI: 1000 dpi (range 200–4000, 77 steps)
- Model: 1b023
- Render: mx_master_3 · Slot 3
- Logitech BRIO — camera
- Connection: unknown · Online: yes · Battery: n/a
- Capabilities: not probed
- Model: 085e
- Render: brio · Slot 0
- Logitech BRIO — camera
- Connection: unknown · Online: yes · Battery: n/a
- Capabilities: not probed
- Model: 085e
- Render: brio · Slot 0
```

### `openlogi list` output

```text
(inventory read from the running agent)
Unifying Receiver (674EB606, vid=046d pid=c52b)
└─ slot 3 ● Wireless Mouse MX Master 3 (mouse, wpid=4082, battery=20% low (discharging))
model_ids=[b023,4082,0000] ext=01 serial=— unit_id=91d12fc6 transports=equad+btle

Cameras (2 Logitech UVC)
├─ ● Logitech BRIO (camera, vid=046d pid=085e, up to 1920x1080@60, id=/dev/v4l/by-id/usb-046d_Logitech_BRIO_30C684EF-video-index0)
└─ ● Logitech BRIO (camera, vid=046d pid=085e, up to 340x340@30, id=/dev/v4l/by-id/usb-046d_Logitech_BRIO_30C684EF-video-index2)
```

### Logs

```shell
026-08-29T02:11:40.681747Z DEBUG openlogi_core::single_instance: single-instance lock acquired path=/home/thomaz/.config/openlogi/agent.lock
2026-08-29T02:11:40.682136Z INFO openlogi_agent::overlay: role held by a finished run: run 3217671409486778203 pid 109345 (/usr/bin/openlogi-overlay)
2026-08-29T02:11:40.683007Z DEBUG openlogi_agent::launch_agent: systemd user unit already absent
2026-08-29T02:11:40.683604Z INFO openlogi_agent: openlogi-agent started
2026-08-29T02:11:40.683640Z DEBUG openlogi_hook::linux: frontmost: session kind = Wayland
2026-08-29T02:11:40.683646Z INFO openlogi_agent: accessibility granted — installing OS mouse hook
2026-08-29T02:11:40.683684Z INFO openlogi_agent::server: IPC server listening
2026-08-29T02:11:40.685131Z INFO openlogi_agent_core::runtime::hook: OS input hook installed
2026-08-29T02:11:40.685251Z DEBUG openlogi_hook::linux: hook started on /dev/input/event15
2026-08-29T02:11:40.685709Z DEBUG openlogi_hook::linux::wlr_foreign_toplevel: wlr-foreign-toplevel: compositor does not advertise the protocol
2026-08-29T02:11:40.689468Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:40.689519Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:40.689531Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:40.689548Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:40.689557Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:40.689565Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:40.689584Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:40.689594Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:40.689603Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:40.689838Z DEBUG openlogi_hook::linux::gnome_shell: gnome-shell: OpenLogi extension not reachable: org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable
2026-08-29T02:11:40.690089Z DEBUG openlogi_device::inventory: HID++ candidate interfaces count=1
2026-08-29T02:11:40.690161Z DEBUG openlogi_hid::transport: opened HID++ channel name=Logitech USB Receiver vid=046d
2026-08-29T02:11:40.690522Z DEBUG openlogi_hook::linux: frontmost: using 'x11' backend
2026-08-29T02:11:40.690548Z DEBUG openlogi_hook::linux: frontmost: on Wayland but using the X11/XWayland backend; native Wayland windows will report None. Install the OpenLogi GNOME Shell extension (GNOME) or use a wlroots compositor.
2026-08-29T02:11:40.690672Z DEBUG openlogi_agent_core::watchers::poll: changed watcher="openlogi-app-watcher" value=None
2026-08-29T02:11:40.692461Z DEBUG openlogi_device::inventory::probe: receiver reports pairing count pairing_count=1
2026-08-29T02:11:40.694668Z DEBUG openlogi_device::inventory::probe: trigger_device_arrival failed; receiver may report no devices error=Protocol(Channel(Implementation(Other(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" }))))
2026-08-29T02:11:40.695174Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:40.695187Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:40.695194Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:40.695201Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:40.695211Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:40.695218Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:40.695225Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:40.695234Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:40.695242Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:40.783414Z INFO openlogi_agent::overlay: asked the superseded overlay to leave outcome=Left
2026-08-29T02:11:41.284054Z INFO openlogi_agent::overlay: helper started, pid 110831
2026-08-29T02:11:41.291223Z DEBUG RPC{rpc.deadline=2026-08-29T02:11:51.291070294Z otel.kind="client" otel.name=Agent.protocol_version rpc.trace_id=00}: tarpc::client: SendRequest
2026-08-29T02:11:41.291345Z DEBUG cosmic_text::font::system: Locale: pt-BR
2026-08-29T02:11:41.291404Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291196553Z otel.kind="server"}: tarpc::server: ReceiveRequest
2026-08-29T02:11:41.291471Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291196553Z otel.kind="server"}: tarpc::server: BeginRequest
2026-08-29T02:11:41.291529Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291196553Z otel.kind="server" otel.name="Agent.protocol_version" otel.name="Agent.protocol_version"}: tarpc::server: CompleteRequest
2026-08-29T02:11:41.291546Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291196553Z otel.kind="server" otel.name="Agent.protocol_version" otel.name="Agent.protocol_version"}: tarpc::server: BufferResponse
2026-08-29T02:11:41.291587Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291196553Z otel.kind="server" otel.name="Agent.protocol_version" otel.name="Agent.protocol_version"}: tarpc::server: SendResponse
2026-08-29T02:11:41.291633Z DEBUG RPC{rpc.deadline=2026-08-29T02:11:51.291070294Z otel.kind="client" otel.name=Agent.protocol_version rpc.trace_id=00}: tarpc::client: ReceiveResponse
2026-08-29T02:11:41.291677Z DEBUG RPC{rpc.deadline=2026-08-29T02:11:51.291659834Z otel.kind="client" otel.name=Agent.identity rpc.trace_id=00}: tarpc::client: SendRequest
2026-08-29T02:11:41.291732Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291705691Z otel.kind="server"}: tarpc::server: ReceiveRequest
2026-08-29T02:11:41.291749Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291705691Z otel.kind="server"}: tarpc::server: BeginRequest
2026-08-29T02:11:41.291770Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291705691Z otel.kind="server" otel.name="Agent.identity" otel.name="Agent.identity"}: tarpc::server: CompleteRequest
2026-08-29T02:11:41.291781Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291705691Z otel.kind="server" otel.name="Agent.identity" otel.name="Agent.identity"}: tarpc::server: BufferResponse
2026-08-29T02:11:41.291793Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:11:51.291705691Z otel.kind="server" otel.name="Agent.identity" otel.name="Agent.identity"}: tarpc::server: SendResponse
2026-08-29T02:11:41.291857Z DEBUG RPC{rpc.deadline=2026-08-29T02:11:51.291659834Z otel.kind="client" otel.name=Agent.identity rpc.trace_id=00}: tarpc::client: ReceiveResponse
2026-08-29T02:11:41.291893Z DEBUG RPC{rpc.deadline=2026-08-29T02:12:06.291884338Z otel.kind="client" otel.name=Agent.observe_action_ring rpc.trace_id=00}: tarpc::client: SendRequest
2026-08-29T02:11:41.291950Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:12:06.291913241Z otel.kind="server"}: tarpc::server: ReceiveRequest
2026-08-29T02:11:41.291968Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:12:06.291913241Z otel.kind="server"}: tarpc::server: BeginRequest
2026-08-29T02:11:41.291990Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:12:06.291913241Z otel.kind="server" otel.name="Agent.observe_action_ring" otel.name="Agent.observe_action_ring"}: tarpc::server: CompleteRequest
2026-08-29T02:11:41.292000Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:12:06.291913241Z otel.kind="server" otel.name="Agent.observe_action_ring" otel.name="Agent.observe_action_ring"}: tarpc::server: BufferResponse
2026-08-29T02:11:41.292011Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:12:06.291913241Z otel.kind="server" otel.name="Agent.observe_action_ring" otel.name="Agent.observe_action_ring"}: tarpc::server: SendResponse
2026-08-29T02:11:41.292035Z DEBUG RPC{rpc.deadline=2026-08-29T02:12:06.291884338Z otel.kind="client" otel.name=Agent.observe_action_ring rpc.trace_id=00}: tarpc::client: ReceiveResponse
2026-08-29T02:11:41.292053Z DEBUG RPC{rpc.deadline=2026-08-29T02:12:06.292047495Z otel.kind="client" otel.name=Agent.observe_action_ring rpc.trace_id=00}: tarpc::client: SendRequest
2026-08-29T02:11:41.292089Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:12:06.292068728Z otel.kind="server"}: tarpc::server: ReceiveRequest
2026-08-29T02:11:41.292100Z DEBUG RPC{rpc.trace_id=00 rpc.deadline=2026-08-29T02:12:06.292068728Z otel.kind="server"}: tarpc::server: BeginRequest
2026-08-29T02:11:41.314049Z DEBUG cosmic_text::font::system: Parsed 606 font faces in 22ms.
2026-08-29T02:11:41.315748Z INFO gpui_linux::linux::platform: Compositor GPU hint: vendor=0x1002, device=0x73ff (from dev 226:128)
2026-08-29T02:11:42.696605Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:42.696667Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:42.696688Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:42.696705Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:42.696741Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:42.696760Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:42.696777Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:42.696795Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:42.696812Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:42.697830Z DEBUG openlogi_device::inventory: HID++ candidate interfaces count=1
2026-08-29T02:11:42.700334Z DEBUG openlogi_device::inventory::probe: receiver reports pairing count pairing_count=1
2026-08-29T02:11:44.210758Z DEBUG openlogi_device::inventory::probe: drained device-arrival events events=1
2026-08-29T02:11:45.164248Z DEBUG openlogi_device::inventory::probe: unifying paired slot slot=3 online=true wpid=4082 kind=Mouse codename=Some("Wireless Mouse MX Master 3")
2026-08-29T02:11:45.165458Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:45.165508Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:45.165532Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:45.165550Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:45.165568Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:45.165585Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:45.165603Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:45.165619Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:45.165635Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:45.165919Z DEBUG openlogi_agent_core::orchestrator: device(s) require capture re-arm generation=1
2026-08-29T02:11:45.244248Z DEBUG openlogi_device::write::hires_wheel: wheel mode already set; skipping index=3 desired=ScrollWheelMode { resolution: High, inverted: false, target: Native }
2026-08-29T02:11:45.244341Z DEBUG openlogi_agent_core::hardware: native wheel mode written index=3 resolution=None inverted=Some(false)
2026-08-29T02:11:45.686053Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:45.686124Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:45.686145Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:45.686163Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:45.686181Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:45.686198Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:45.686233Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:45.686252Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:45.686268Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:45.687425Z DEBUG openlogi_hid::transport: opened HID++ channel name=Logitech USB Receiver vid=046d
2026-08-29T02:11:46.098246Z INFO openlogi_device::session::gesture: control capture active index=3 gesture_sources=0 dpi_buttons=1 buttons=1 thumbwheel=false
2026-08-29T02:11:47.167986Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:47.168049Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:47.168070Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:47.168090Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:47.168106Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:47.168123Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:47.168141Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:47.168157Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:47.168174Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:47.169224Z DEBUG openlogi_device::inventory: HID++ candidate interfaces count=1
2026-08-29T02:11:47.172115Z DEBUG openlogi_device::inventory::probe: receiver reports pairing count pairing_count=1
2026-08-29T02:11:48.678622Z DEBUG openlogi_device::inventory::probe: drained device-arrival events events=1
2026-08-29T02:11:48.698096Z DEBUG openlogi_device::inventory::probe: unifying paired slot slot=3 online=true wpid=4082 kind=Mouse codename=Some("Wireless Mouse MX Master 3")
2026-08-29T02:11:48.699300Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:48.699335Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:48.699353Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:48.699372Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:48.699389Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:48.699407Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:48.699424Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:48.699441Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:48.699458Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:48.778098Z DEBUG openlogi_device::write::hires_wheel: wheel mode already set; skipping index=3 desired=ScrollWheelMode { resolution: High, inverted: false, target: Native }
2026-08-29T02:11:48.778183Z DEBUG openlogi_agent_core::hardware: native wheel mode written index=3 resolution=None inverted=Some(false)
2026-08-29T02:11:50.701830Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:50.701890Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:50.701916Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:50.701934Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:50.701952Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:50.701970Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:50.701986Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:50.702002Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:50.702023Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:50.703072Z DEBUG openlogi_device::inventory: HID++ candidate interfaces count=1
2026-08-29T02:11:50.705974Z DEBUG openlogi_device::inventory::probe: receiver reports pairing count pairing_count=1
2026-08-29T02:11:50.708199Z DEBUG openlogi_device::inventory::probe: trigger_device_arrival failed; receiver may report no devices error=Protocol(Channel(Implementation(Other(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" }))))
2026-08-29T02:11:50.708307Z DEBUG openlogi_device::inventory::ledger: node probe failed — replaying its last good inventory failures=1
2026-08-29T02:11:50.709468Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:50.709533Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:50.709551Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:50.709570Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:50.709587Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:50.709605Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:50.709622Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:50.709639Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:50.709656Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:50.791939Z DEBUG openlogi_device::write::hires_wheel: wheel mode already set; skipping index=3 desired=ScrollWheelMode { resolution: High, inverted: false, target: Native }
2026-08-29T02:11:50.792004Z DEBUG openlogi_agent_core::hardware: native wheel mode written index=3 resolution=None inverted=Some(false)
2026-08-29T02:11:52.711980Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:52.712044Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:52.712066Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:52.712084Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:52.712101Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:52.712119Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:52.712135Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:52.712151Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:52.712168Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:52.713322Z DEBUG openlogi_device::inventory: HID++ candidate interfaces count=1
2026-08-29T02:11:52.715869Z DEBUG openlogi_device::inventory::probe: receiver reports pairing count pairing_count=1
2026-08-29T02:11:54.226858Z DEBUG openlogi_device::inventory::probe: drained device-arrival events events=1
2026-08-29T02:11:54.297907Z DEBUG openlogi_device::inventory::probe: unifying paired slot slot=3 online=true wpid=4082 kind=Mouse codename=Some("Wireless Mouse MX Master 3")
2026-08-29T02:11:54.299075Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:54.299111Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:54.299129Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:54.299147Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:54.299165Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:54.299182Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:54.299199Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:54.299215Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:54.299232Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech USB Receiver pid=c52b usage_page=0xff00 usage_id=0x0004 matched=false
2026-08-29T02:11:54.379809Z DEBUG openlogi_device::write::hires_wheel: wheel mode already set; skipping index=3 desired=ScrollWheelMode { resolution: High, inverted: false, target: Native }
2026-08-29T02:11:54.379882Z DEBUG openlogi_agent_core::hardware: native wheel mode written index=3 resolution=None inverted=Some(false)
2026-08-29T02:11:56.301477Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-29T02:11:56.301547Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-29T02:11:56.301588Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-29T02:11:56.301607Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-29T02:11:56.301626Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-29T02:11:56.301643Z DEBUG openlogi_hid::transport: logitech HID node name=Logitech MX Master 3 pid=4082 usage_page=0xff00 usage_id=0x0004 matched=false
```

### macOS permissions (if applicable)

- [ ] OpenLogi has **Accessibility** permission (needed to remap buttons via the event tap).
- [ ] OpenLogi has **Input Monitoring** permission (needed for Bluetooth-direct devices and capture).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with openlogi-agent and compare the behavior around commits 47cb7cce75c963b9f333bc482d07bce054eab012 and 7e568e5c2c224d0af9075b4f24ae9955126c13f2. Review the gesture watcher, inventory, and node ledger warnings in the supplied logs, then reproduce with the MX Master 3 and receiver on Linux. Done means button mappings continue working without repeated capture-session or node-probe failures.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.