Skip to content

feat(hid): add standalone Litra light support - #513

Merged
davidbudnick merged 10 commits into
AprilNEA:masterfrom
tiaringhio:feat/litra-support
Aug 10, 2026
Merged

feat(hid): add standalone Litra light support#513
davidbudnick merged 10 commits into
AprilNEA:masterfrom
tiaringhio:feat/litra-support

Conversation

@tiaringhio

Copy link
Copy Markdown
Contributor

Summary

Adds support for standalone Logitech Litra lights as non-HID++ devices, starting with Litra Glow.

Changes

  • Add standalone light discovery and raw HID transport.
  • Add Litra Glow controls for power, brightness, and color temperature.
  • Expose light controls through the agent IPC, CLI, and GUI.
  • Add model-specific Litra Glow artwork and remove generic/ghost device rendering.
  • Preserve camera-linked automatic light activation.
  • Keep GUI tests isolated from the user's persisted configuration.
  • Update configuration and integration documentation.

Testing

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • Manual validation performed with Litra Glow hardware.
  • GUI launch and artwork rendering verified on macOS.

Fixes #144

@greptile-apps

greptile-apps Bot commented Aug 3, 2026

Copy link
Copy Markdown

Greptile Summary

Adds standalone Logitech Litra light support across raw-HID discovery, agent control, configuration, CLI, and GUI.

  • Introduces standalone-device inventory and raw-HID transport for Litra Glow.
  • Adds power, brightness, temperature, and camera-linked automation controls.
  • Reconciles partial and superseded GUI writes while serializing agent-side reapplication.
  • Adds model artwork, localization, documentation, and wire-format coverage.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; the prior partial-write, canceled-reapply, and superseded-edit issues are addressed by retained command outcomes, ordered reconciliation, and a cancellation check performed while holding the route lock.

Important Files Changed

Filename Overview
crates/openlogi-gui/src/state/light.rs Tracks current and superseded command batches so successful hardware writes are retained during partial-failure reconciliation.
crates/openlogi-agent-core/src/hardware/light.rs Serializes standalone-light operations and rechecks cancellation under the route lock before background reapplication.
crates/openlogi-agent/src/server.rs Exposes standalone-light RPC handlers that invalidate pending reapplications before explicit commands.
crates/openlogi-hid/src/standalone.rs Discovers recognized standalone raw-HID devices and maps them to model-specific capabilities.
crates/openlogi-hid/src/write/litra.rs Implements model-specific Litra command encoding and raw-HID writes.
crates/openlogi-agent-core/src/orchestrator.rs Integrates standalone inventory, settings reapplication, and camera-linked light state into agent runtime management.

Sequence Diagram

sequenceDiagram
    participant GUI
    participant IPC as Agent IPC
    participant Agent
    participant HID as Litra HID
    GUI->>IPC: SetLight(route, command)
    IPC->>Agent: Cancel pending reapply
    Agent->>Agent: Acquire per-route lock
    Agent->>HID: Apply command
    HID-->>Agent: Result
    Agent-->>GUI: Typed result
    GUI->>GUI: Persist accepted settings or reconcile partial success
Loading

Reviews (9): Last reviewed commit: "fix: rebase litra onto master and repair..." | Re-trigger Greptile

Comment thread crates/openlogi-gui/src/state/light.rs
Comment thread crates/openlogi-agent-core/src/hardware/light.rs
Comment thread crates/openlogi-gui/src/state/light.rs Outdated
@tiaringhio

Copy link
Copy Markdown
Contributor Author

hi @AprilNEA, sorry if i'm disturbing you, are you able to leave feedback on this PR? i'm a first time contributor, i hope tagging you is the right thing to do.

thank you!

@davidbudnick davidbudnick added type: feature New feature request platform: all Cross-platform issue labels Aug 4, 2026
@davidbudnick davidbudnick self-assigned this Aug 10, 2026
@davidbudnick davidbudnick added this to the v0.6.24 milestone Aug 10, 2026
@davidbudnick
davidbudnick merged commit 87beebe into AprilNEA:master Aug 10, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform: all Cross-platform issue type: feature New feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Support non-HID++ device categories, starting with Litra lights

2 participants