* fix: add horizontal mouse wheel (AC Pan) scroll support (#415)
- HID descriptors: add AC Pan (Usage 0x0238, Consumer Page) to both
absolute and relative mouse descriptors for horizontal scroll
- Backend: extend AbsMouseWheelReport to accept wheelX, add
RelMouseWheelReport with both axes, update report_length
- RPC: add wheelX parameter to wheelReport binding
- Frontend: read deltaX in wheel handler with same clamping/inversion
and throttling as vertical scroll
- E2E: add wheel scroll test verifying both vertical (REL_WHEEL) and
horizontal (REL_HWHEEL) events reach the remote host
* style: fix goimports alignment in RelMouseReport
* fix: don't negate horizontal scroll direction in wheelReport
The clampWheel helper was negating the result for both axes, but only
vertical scrolling needs inversion (browser deltaY and HID Wheel use
opposite sign conventions). Horizontal scrolling (deltaX / AC Pan)
shares the same convention (positive = right), so negation reversed the
direction on the target machine.
* fix: wire RelMouseWheelReport into RPC and add wheel scroll e2e tests
rpcWheelReport only called AbsMouseWheelReport, so wheel scrolling was
silently broken in relative-only mouse mode. Now calls both Abs and Rel
wheel report methods (each guards on its own enabledDevices flag).
Adds e2e tests for vertical/horizontal wheel scroll in default mode and
relative-only mode. Bumps beforeAll waitForInputDevices timeout to 30s
and keyboard LED test expectKeyPress timeouts to 5s to reduce flakiness.