feat(gui): add capability-driven actions ring - #528
Conversation
Greptile SummaryThe PR adds a capability-driven Actions Ring spanning configuration, device capture, agent-owned IPC sessions, a warm overlay, action execution, packaging, and localization.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains; the current command worker retains terminal work during connection failures and stalled RPCs, and newer terminal commands promptly supersede stale-session work.
|
| Filename | Overview |
|---|---|
| crates/openlogi-gui/src/bin/openlogi-overlay.rs | Implements the warm radial overlay and now preserves terminal commands across reconnects while allowing newer session commands to supersede stale work. |
| crates/openlogi-agent-core/src/action_ring.rs | Adds authoritative, expiring ring sessions with snapshotted actions and validated hover, activation, and cancellation. |
| crates/openlogi-agent/src/server.rs | Exposes the ring session RPCs and dispatches validated activations through the shared action path. |
| crates/openlogi-agent/src/overlay.rs | Adds supervision and packaged-binary discovery for the warm overlay helper. |
| crates/openlogi-core/src/binding/action_ring.rs | Defines persisted ring layouts, slots, overrides, and presentation configuration. |
| xtask/src/commands/macos/bundle.rs | Embeds and signs the overlay helper as a nested macOS application. |
Sequence Diagram
sequenceDiagram
participant Input as Device input
participant Agent as OpenLogi agent
participant Session as ActionRingManager
participant Overlay as Overlay helper
participant Dispatch as ActionDispatcher
Input->>Agent: Show Actions Ring
Agent->>Session: Begin snapshotted session
Overlay->>Agent: Long-poll next_action_ring
Agent-->>Overlay: Session ID and presentation slots
Overlay->>Agent: Hover / activate / cancel
Agent->>Session: Validate active session and slot
Session-->>Agent: Snapshotted action
Agent->>Dispatch: Execute selected action
Reviews (3): Last reviewed commit: "fix(gui): interrupt stalled ring request..." | Re-trigger Greptile
|
@jericho0521 Great work so far! 🎉 Can you ensure you update the PR and review comments from greptile-apps? |
8576bef to
e7a9574
Compare
|
@jericho0521 Great work on adding the config for the action ring! Can you add a screen recording of the PR working locally on your computer? Also a noticed some functionality in the following Logi youtube video; https://www.youtube.com/watch?v=sXXIQt9mjDQ Did you cover most of the features of the OG product offering? |
|
Thanks! I’ll add a local screen recording. Covered in this PR:
Not yet covered:
This covers the core local-first workflow, but not full Options+ parity. The remaining features are better handled as follow-up work. |
Screen.Recording.2026-08-11.at.6.26.20.AM.mov |
e8f904d to
2c4d463
Compare
2c4d463 to
4927a6a
Compare
|
Too many files changed for review (112 files, 100 file limit). Bypass the limit by tagging |
4927a6a to
b97b5b5
Compare
Summary
Adds a capability-driven Actions Ring vertical slice, including MX Master 4 Haptic Sense Panel capture, agent-owned sessions, haptic feedback, a warm non-activating GPUI overlay, and an editor for radial actions.
Changes
0x19B0haptic feedback and0x19C0force-sensing wrappers; discover and divert Haptic Sense Panel CID0x01A0; preserve prior reporting stateopenlogi-overlayin macOS, Linux, and Windows artifactsThe
0x19B0,0x19C0, and CID0x01A0behavior is documented in code as reverse-engineered rather than treated as an official protocol guarantee.Screenshots
Testing
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspacecargo run -p xtask -- macos bundlecodesign --verify --deep --strict --verbose=2 target/release/bundle/osx/OpenLogi.app0x01A0capture, waveform playback, force thresholds, and press-to-first-frame latency remain to be verifiedRelated to #92 and #313.
Fixes #15