Skip to content

feat: add standalone Rust/Tauri desktop client - #64

Closed
lgcyaxi wants to merge 1 commit into
AhakeyAI:mainfrom
lgcyaxi:codex/rust-client
Closed

lgcyaxi wants to merge 1 commit into
AhakeyAI:mainfrom
lgcyaxi:codex/rust-client

Conversation

@lgcyaxi

@lgcyaxi lgcyaxi commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a standalone Rust + Tauri 2 + React client under ahakey-desktop/, with a dedicated Windows CI workflow. Existing Swift, Java, Python and BLE bridge implementations are unchanged in this PR.

  • Native BLE, Windows vendor-HID device information and capability-gated routing controls.
  • Four configurable application profiles and physical keys, voice-key handling, tray controls and target-monitor captions.
  • Optional local SenseVoice recognition and Doubao streaming recognition; model weights and credentials are not included.
  • Display/image preview and extensible usage cards. On-device image/card upload is not implemented.

Scope

Only ahakey-desktop/** and .github/workflows/rust-client.yml are included, on top of current main. No firmware source, custom HEX, private operational documents, signing material or generated application binaries are committed.

This is a draft for architectural and integration feedback, not a replacement for the current clients.

Validation

  • Windows Rust client: 51 tests passed, one controlled F18 hardware-injection test intentionally skipped.
  • BLE/USB crate: 13 tests passed using the client's locked dependency graph.
  • Clean-checkout frontend: 18 tests passed; TypeScript and production Vite build passed.
  • Rust formatting and strict Clippy passed.
  • Windows 1.1.0 signed portable build was previously compiled and its detached signature and downloaded payload hashes verified. The Rust subtree in this PR is identical to that source; the new workflow adds independent CI coverage.

Fork-side Windows CI passed: https://github.com/lgcyaxi/AhakeyAI/actions/runs/34521539792. Upstream workflow approval remains under maintainer control.

Known limitations and review gates

  • A USB telemetry timeout has been reported on the installed Windows client while Windows still enumerates the keyboard. An exclusive read-only device test also timed out after opening the interface and sending its query; hardware validation remains pending. This PR does not claim that regression is fixed; HID enumeration is not treated as proof of successful telemetry.
  • macOS/Linux adapters require native-host build, permissions and hardware acceptance; no cross-platform binary support is claimed.
  • External WeChat/Windows dictation uses toggle shortcuts without authoritative recording-state feedback. Rapid-press synchronization remains a limitation.
  • Dual-BLE/USB routing controls require compatible firmware and further multihost sleep/wake testing. No firmware is distributed with this PR.
  • Microphone/provider-account, full native UI/hotplug and first-run hook acceptance are not covered by the unattended CI job.

Please advise whether this isolated client direction fits the project before we mark the PR ready for review.

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