fix(desktop): connect the Codex Micro over Bluetooth

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>
9d98c8d4f0Nikita committed on 10/25/2026, 2:35:10 AMparentb4df7f6
8 files changedLine totals unavailable