Over Bluetooth LE the keyboard, consumer, mouse and vendor collections share one HID handle, so non-vendor reports were parsed as RPC traffic. Only accept vendor reports, follow the live endpoint on every poll (sleep, channel switch, cable plugged in) and prefer USB when both are listed. Settings show the link. Also addresses review: load node-hid lazily, survive a rejected close(), keep a newer state event over the initial getState() reply, stable menu item keys, and @variant dark for the preview colours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nikita committed on 10/25/2026, 2:35:10 AMparentb4df7f6
8 files changedLine totals unavailable