Skip to content

feat: cross-platform exec, immediate long-press, own category#1

Merged
babs merged 1 commit intodevelopfrom
feat/pr11-review-feedback
May 2, 2026
Merged

feat: cross-platform exec, immediate long-press, own category#1
babs merged 1 commit intodevelopfrom
feat/pr11-review-feedback

Conversation

@babs
Copy link
Copy Markdown
Owner

@babs babs commented May 2, 2026

Addresses the PR feedback on OpenActionAPI/plugins#11.

Summary

  • Execution parity with OpenDeck's Run Command (Flatpak/Distrobox/Windows dispatch, $HOME cwd, null stdin).
  • Long-press UX: fires on threshold reach (immediate feedback), 500ms → 750ms.
  • Cross-platform builds: macOS (universal binary via lipo), Windows, Linux x86_64/aarch64.
  • Discoverability: own "Rotary Encoder" category.
  • Defensive: RUST_LOG honored; will_disappear reclaims in-flight timers; duplicate dial_down aborts the orphan timer task.

Test plan

  • Stream Deck+ on Linux: rotate CW/CCW, short press, long press at 750ms threshold.
  • Verify Flatpak detection by running OpenDeck under Flatpak.
  • macOS / Windows: install resulting release zip and confirm action appears under "Rotary Encoder".
  • Sanity: cargo build --release per platform via the CI matrix on a draft tag.

- Match OpenDeck Run Command's execution model (Flatpak/Distrobox/Windows
  dispatch, $HOME cwd, null stdin) so behavior is consistent across sandboxes.
- Long-press fires on threshold reach for tactile feedback; threshold raised
  to 750ms to cut accidental triggers reported on Stream Deck+.
- Ship native macOS (universal), Windows, and Linux x86_64/aarch64 binaries.
- Move action into its own "Rotary Encoder" category for discoverability.
- Honor RUST_LOG so debug-level command echoing is reachable without rebuild.
- Reclaim in-flight long-press timers on instance removal so an orphan timer
  can never fire against a teardown'd encoder.
@babs babs merged commit f7b8a4d into develop May 2, 2026
@babs babs deleted the feat/pr11-review-feedback branch May 2, 2026 22:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant