fix(hotkey): 5 个快捷 setter 接入 Less Computer 键碰撞校验 (#684)#685
Conversation
集中式 reject_hotkey_collisions 已校验 coding_agent_voice_hotkey,但 set_dictation/translation/switch_style/open_app_hotkey(hotkeys.rs)与 set_qa_hotkey(qa.rs)这 5 个单键 setter 全部漏掉 less_computer 校验—— 用户可经单键面板把任一动作键设成与 Less Computer 键相同而不被拒,随后 完整保存又被 reject_hotkey_collisions 拒绝,两条路径不一致。 把早已存在但未接线的 reject_*_less_computer_hotkey_overlap 接进这 5 个 setter(与现有 pairwise 校验同模式);reject_qa_less_computer_hotkey_overlap 提升为 pub(crate) 供 qa.rs 调用。附 reject_hotkey_collisions 碰撞矩阵单测。
|
@claude 请审核:把 5 个快捷 setter(dictation/translation/switch_style/open_app/qa_hotkey)接入已有但漏接的 Less Computer 键碰撞校验,与集中式 reject_hotkey_collisions 对齐。重点看 (1) 各 reject_*_less_computer 调用的参数顺序是否正确(dictation/translation 在前 vs less_computer 在前的两种签名);(2) 是否还有其他设置入口(如 set_combo_hotkey)也漏了 less_computer 校验。 |
|
Claude finished @appergb's task in 2m 1s —— View job PR #685 代码审核
审核结论(1) 参数顺序 — 全部正确 ✅各函数签名与调用位置对照如下:
补充说明:底层 (2) 漏接入口 —
|
| 项目 | 结论 |
|---|---|
| 5 个 setter 参数顺序 | ✅ 全部正确 |
set_combo_hotkey 漏接 less_computer |
|
| 测试质量 | 可接受,但测试路径与新代码路径有偏差(非阻塞) |
建议在合并前补上 set_combo_hotkey 的 less_computer 校验,其余变更逻辑正确、参数一致。
PR Reviewer Guide 🔍(Review updated until commit 2de1775)Here are some key observations to aid the review process:
|
组合听写键 setter 同样把组合键写进 dictation_hotkey 却漏校验 less_computer, 补上 reject_dictation_less_computer_hotkey_overlap,与其余 5 个 setter 一致。
|
Persistent review updated to latest commit 2de1775 |
User description
关联 issue
Closes #684
问题
集中式
reject_hotkey_collisions(commands/hotkeys.rs:216)已校验coding_agent_voice_hotkey(Less Computer 键),但 5 个快捷 setter 各跑自己的部分 pairwise 校验、全部漏掉 less_computer:set_dictation_hotkey/set_translation_hotkey/set_switch_style_hotkey/set_open_app_hotkey(hotkeys.rs)set_qa_hotkey(qa.rs)→ 用户可经单键面板把任一动作键设成与 Less Computer 键相同而不被拒,随后完整保存设置时又被
reject_hotkey_collisions拒绝。两条检测路径不一致。改动(单一职责)
把早已存在但未接线的
reject_*_less_computer_hotkey_overlap接进这 5 个 setter(与现有 pairwise 校验同模式):set_dictation_hotkey→reject_dictation_less_computer_hotkey_overlapset_translation_hotkey→reject_translation_less_computer_hotkey_overlapset_switch_style_hotkey→reject_less_computer_switch_style_hotkey_overlapset_open_app_hotkey→reject_less_computer_open_app_hotkey_overlapset_qa_hotkey→reject_qa_less_computer_hotkey_overlap(提升为pub(crate)供 qa.rs 调用)未改动校验函数本体与集中式
reject_hotkey_collisions。测试
新增碰撞矩阵单测
each_action_hotkey_collides_with_less_computer:每个动作键 == Less Computer 键都被拒、全不同则通过。PR Type
Bug fix
Description
修复 5 个快捷 setter 漏校验 Less Computer 键碰撞
ensure per‑setter collision check matches centralized
reject_hotkey_collisions新增碰撞矩阵单测覆盖所有场景
Diagram Walkthrough
File Walkthrough
hotkeys.rs
hotkeys.rs: 接入 6 个 setter 的 Less Computer 校验openless-all/app/src-tauri/src/commands/hotkeys.rs
set_dictation_hotkey、set_translation_hotkey、set_switch_style_hotkey、set_open_app_hotkey、set_combo_hotkey
中添加 less_computer 碰撞校验
qa.rs
qa.rs: 补充 set_qa_hotkey 的 Less Computer 校验openless-all/app/src-tauri/src/commands/qa.rs