feat(tauri): wire the HyperDeck core into the app#26
Merged
statik merged 2 commits intoJun 21, 2026
Merged
Conversation
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
merged commit Jun 21, 2026
44d0c00
into
claude/tauri-migration-self-update-74d57g
7 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.rscomposition root: loadsprofiles.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 on0.0.0.0:9993and 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; aTrayPresenterreflects lock status in the tray tooltip;--check-accessibilityand--no-tray/--headlessflags (CLI parity with Go) with aLogPresenterfor headless runs.dirsdependency 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/WindowstauriCI 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