Skip to content

feat(tauri): wire the HyperDeck core into the app#26

Merged
statik merged 2 commits into
claude/tauri-migration-self-update-74d57gfrom
claude/step-14-tauri-wiring
Jun 21, 2026
Merged

feat(tauri): wire the HyperDeck core into the app#26
statik merged 2 commits into
claude/tauri-migration-self-update-74d57gfrom
claude/step-14-tauri-wiring

Conversation

@statik

@statik statik commented Jun 21, 2026

Copy link
Copy Markdown
Member

Step 14 of the Tauri/Rust migration

Wires the ported core into the Tauri shell — the adapter is now functional (Auto mode). Rust analog of cmd/hyperdeck-adapter/main.go.

What's here

  • backend.rs composition root: loads profiles.yaml (seeding the default on first run) + selection.json; builds the injector/enumerator, a control router (api → VLC HTTP, uia → UI Automation on Windows), Session, VirtualDeck, LockManager, Reconciler; binds the HyperDeck TCP server on 0.0.0.0:9993 and spawns the server / poll / reconcile threads; applies the persisted profile selection on startup.
  • main.rs: tray menu gains Re-home (VirtualDeck::rehome) alongside Check for Updates + Quit; a TrayPresenter reflects lock status in the tray tooltip; --check-accessibility and --no-tray/--headless flags (CLI parity with Go) with a LogPresenter for headless runs.
  • Adds the dirs dependency for the OS config path.

Scope / verification

The tray profile submenu (pin a profile) is the next step; today it runs in Auto (match-any) mode. Verified via cargo fmt; compiled by the macOS/Windows tauri CI job (can't build Tauri in the Linux sandbox). End-to-end behavior is the hardware step (#10/#11).

Part of: #10, #11, #12.


Generated by Claude Code

claude added 2 commits June 21, 2026 15:03
Connect the tray shell to the ported core (analog of cmd/hyperdeck-adapter/
main.go):

- backend.rs composition root: loads profiles.yaml (seeding the default on
  first run) + selection.json, builds the injector/enumerator, a control
  router (api -> VLC HTTP, uia -> UI Automation on Windows), Session,
  VirtualDeck, LockManager, Reconciler; binds the HyperDeck TCP server on
  0.0.0.0:9993 and spawns server / poll / reconcile threads; applies the
  persisted profile selection on startup
- main.rs: tray menu gains Re-home (VirtualDeck::rehome) alongside Check
  for Updates + Quit; a TrayPresenter reflects lock status in the tray
  tooltip; --check-accessibility and --no-tray/--headless flags (parity
  with the Go CLI) with a LogPresenter for headless runs

The adapter is now functional in Auto mode; the tray profile submenu for
pinning a profile lands next. Adds the dirs dependency for the OS config
path. Verified via cargo fmt; compiled by the macOS/Windows tauri CI job.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8X1NxFiaLGJzwUD5wgRTv
tray_by_id / handle / default_window_icon are inherent on App/AppHandle in
Tauri 2; the Manager import is unused under clippy -D warnings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8X1NxFiaLGJzwUD5wgRTv
@statik
statik merged commit 44d0c00 into claude/tauri-migration-self-update-74d57g Jun 21, 2026
7 checks passed
@statik
statik deleted the claude/step-14-tauri-wiring branch June 21, 2026 15:09
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.

2 participants