Skip to content

feat(computer): support general Windows key chords - #1338

Draft
Corden404 wants to merge 2 commits into
yyjeqhc:mainfrom
Corden404:feat/computer-key-chords
Draft

Corden404 wants to merge 2 commits into
yyjeqhc:mainfrom
Corden404:feat/computer-key-chords

Conversation

@Corden404

Copy link
Copy Markdown
Contributor

背景

关联 #1170(F02)

此前,Windows 的 computer_key_input 支持导航按键,并对 Ctrl+J/P 进行了特殊处理。本次变更将其扩展为支持通用组合键,即由一个主键与不重复的 Shift、Control 和 Option/Alt 修饰键组合而成。

  • 新增 102 个标准化按键,包括字母、数字、F1–F24 功能键、标点符号、编辑键以及数字小键盘按键。
  • 在输入验证、输出 Schema 和原生执行层之间共享统一的按键定义。
  • 通过能力协商启用新增的 Runner 能力 computer_key_chords,同时保留对旧版 Ctrl+J/P 的兼容性。
  • 保留目标身份校验、前台窗口与焦点检查、受保护内容检查以及按键保持状态防护。每次调用都会生成一组有界且完整的按下/释放操作序列;Windows Command 修饰键及被禁止的组合键仍会被拒绝。
  • 保持 macOS 上现有的导航按键行为不变。
  • 为 feat/computer-key-chords 分支启用 Push 触发的 CI。

验证结果

  • 本地工具契约测试: 342 项通过,1 项忽略。
  • 专项测试: Core、Computer、Runner、Registry 和 Server 的相关测试均通过。
  • ChatGPT Web 实测: 使用 Extra High 推理模式进行了 8 轮测试,包括 4 轮基线版本测试和 4 轮候选版本测试,测试过程中允许模型自主选择工具并从失败中恢复。
  • 原生键盘操作成功覆盖: 候选版本完成了选定的 19/19 项目标,而基线版本仅完成 3/19 项。
  • 实际功能验证: 成功验证了 VS Code 中的自定义组合键、文档复制/粘贴/撤销及删除整行操作,以及 Chrome 中的查找、下载和 PDF 输出功能。

验证范围与限制

上述 Web 实测结果证明了本次变更在所测试场景中的可接受性。

在真实桌面环境中,以下两项仍未完成验证:

  • 对外部已保持按下状态的按键进行拒绝处理。
  • 在独立的美式键盘布局环境下运行。

因缺乏相关测试环境,macOS 上的通用组合键支持不属于本次变更范围。

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