feat: add isolated Rust/Tauri client in ahakey-studio-tauri - #65
Conversation
|
Hi @lgcyaxi, 请问您是否能够分多commit,一个commit对应一个功能提交PR。目前的代码因混杂在一起,无法通过Review并入主线。 |
Introduce a standalone library and its focused tests.
Introduce a standalone library and its focused tests.
Introduce a standalone library and its focused tests.
Introduce the feature implementation and its focused tests/components. The following UI and runtime commits connect the shared application entry points.
Introduce the feature implementation and its focused tests/components. The following UI and runtime commits connect the shared application entry points.
Introduce the feature implementation and its focused tests/components. The following UI and runtime commits connect the shared application entry points.
Introduce the feature implementation and its focused tests/components. The following UI and runtime commits connect the shared application entry points.
Introduce the feature implementation and its focused tests/components. The following UI and runtime commits connect the shared application entry points.
Connect the feature panels through shared contracts and the React entry point.
Connect the preceding feature modules through shared Tauri state, commands and tray controls.
Document platform limits and add the build and packaging verification workflow.
da7be1b to
5e6ccb1
Compare
|
@ZephyrKeXiner 已按功能和依赖关系将原来的单一提交拆为 11 个 commits,仍在这个 PR 内:
前三项是独立库;4–8 是功能模块及对应测试/组件,9–10 接入共享的 UI 和运行时入口。因此中间的功能模块提交并不是各自可启动的完整桌面应用,完整应用从第 10 个提交形成,打包检查与 CI 在第 11 个提交补齐。建议按上述顺序逐项查看,公共入口接线可结合第 9–10 项交叉审阅。 本次仅重组历史:最终 Git tree 与拆分前的 本地重新验证通过:前端 24 项测试、Rust 73 项测试、格式检查、严格 Clippy 和前端生产构建。受控 Windows 实体按键注入测试仍按原规则跳过;这次没有新增 macOS 或硬件验收结论。新提交的 CI 将另行显示结果。 感谢指出审阅粒度的问题。 |
|
好的,我们将尽快review代码,时刻与你保持联系! |
ZephyrKeXiner
left a comment
There was a problem hiding this comment.
已审阅截至 5e6ccb1 的全部 11 个提交,建议合并前修复以下 3 个问题:
- 配置写入未检查固件 ACK,仅凭 GATT 写入成功就报告保存成功。应校验固件响应,并对模式和亮度进行状态回读确认。
- macOS/Linux 的豆包凭据使用固定命名空间,预览版与正式版可能互相覆盖或删除 token。应按应用身份隔离。
- toggle 模式在语音异常结束、界面结束或启动失败后,未同步复位按键状态,导致第一次按键重试被忽略。应保持按键状态与语音会话一致。
验证通过:前端及打包检查共 24 项测试、TypeScript 类型检查、前端生产构建,以及 BLE 库 15 项测试。本次未进行 Windows 原生构建和硬件验证。
write_batch only proved GATT write success, so a rejected config could still report saved. write_confirmed now awaits the matching firmware ACK on 0x7344 (docs/ble-protocol.md section 9) and surfaces rejections and timeouts; set_work_mode and set_light_brightness additionally verify via status readback. IDE state sync stays fire-and-forget.
macOS/Linux keyring used a fixed service name, so preview and release
identities could read, overwrite, or delete each other's token. The
namespace now follows the application identifier ({identifier}.doubao),
matching the quota module's isolation. Windows stays per-directory.
Toggle mode latched the key state when a session ended via error, UI stop, the 120s watchdog, or startup failure, swallowing the first retry press. KeyTest.release_session clears only the logical latch and keeps the physical press edge, so a held key cannot restart a session while the next real press starts cleanly.
|
已按三条反馈修复并推送(5e6ccb1 → 99ae4af):
验证:ble 16 项、cloud 15 项、src-tauri 51 项、前端 24 项测试与 TypeScript 检查、release 构建全部通过。真实键盘 ACK 行为的硬件验证依赖固件 0.1.18,如有不符欢迎指出。 |
ZephyrKeXiner
left a comment
There was a problem hiding this comment.
复查最终提交 8c3a2ad:正常 hold/toggle 语音停止、旧 Java Hook 迁移及 Windows 换行兼容、旧固件灯效能力检查和配置回读均已修复,并增加回归测试。客户端已隔离到仓库根目录 ahakey-studio-tauri/;差异仅包含该目录与对应 CI,未修改既有 desktop 客户端。
验证:本地前端 24 项、桌面端 56 项、BLE 18 项测试,严格 Clippy 和原生编译通过;该提交的 Windows 测试/Release 构建、macOS 构建打包和 TypeScript SDK CI 全部通过。Windows 真机交互验收仍不在本次验证范围内。
原审阅问题已解决,同意作为独立子项目合并。
Summary
Add AhaKey Studio 1.1.5 as an independent Rust/Tauri 2/React subproject and
Windows CI. This does not replace or edit the existing Java, Swift or bridge
clients. It supersedes the withdrawn experimental PR #64.
diagnostics for compatible firmware; USB-only pairing reset controls.
WeChat/Windows dictation, optional local SenseVoice and Doubao streaming,
and target-monitor local/cloud captions.
and extensible quota providers. Credentials stay on the host.
The complete diff is restricted to the new repository-root
ahakey-studio-tauri/subdirectory and
.github/workflows/ahakey-studio-tauri.yml. Existing desktopclient source trees are unchanged.
The parent is current
upstream/main,931ebefd4b6fec4ee6578dfd7ebc0fcc93951c73.The client includes the reviewed fixes for voice-key lifecycle, credential
isolation, firmware ACK/readback, lighting capability checks and Java Hook
dispatcher migration.
Companion firmware and scope
Fork Release: Windows client 1.1.5 and community X1 firmware 0.1.17.
The firmware HEX is a separate, unofficial experimental Release asset for
AhaKey X1, distributed for personal/noncommercial research under the
binary permission in #63.
No controlled firmware source, schematics, HEX or private documentation is
included in this PR. The Rust client builds without firmware source or binaries;
unsupported firmware features are capability-gated.
Concurrent device links and presentation standby require compatible firmware,
not just the client. Image/quota-card upload to the device is not implemented.
External dictation tools do not expose reliable recording-state readback.
Validation
After the directory move, local macOS checks pass:
custom-protocolbuild passed after the directory move.Windows checkout line endings.
Regression tests cover normal hold/toggle stops, rapid key release, legacy Hook
migration with backups, custom-script preservation, and firmware lighting and
configuration readback checks. The controlled Windows F18-injection test remains
intentionally ignored. Windows hardware use was reported by the original
maintainer; these review fixes do not add a new hardware certification claim.
macOS/Linux packaging, permissions and clean-machine acceptance remain pending.
Review focus
Please review the transport/security boundaries, firmware capability checks,
settings migration, voice edge handling and the independent-subproject approach.
Happy to coordinate interfaces with the upcoming official Rust runtime mentioned
in #63, or reduce the scope before integration.