dsh-approval-hotkeys:DSH 交互面板的 Enter / Esc 快捷键

前言

在 DeepSeek Harness(DSH)里,审批、工具提问、计划审查等交互面板都会出现确认和取消按钮。dsh-approval-hotkeys 用来减少反复点击:Enter 按确认按钮,Esc 按取消按钮。它把 Claude Code 中常见的确认 / 拒绝习惯带到 DSH 面板上,只处理 DSH 渲染出来的带按钮交互面板。

定位

  • 插件名:dsh-approval-hotkeys
  • 维护者:SiriLee
  • 类型:DeepSeek Harness 客户端插件
  • 许可:MIT
  • 作用:为审批面板、问题 / 选择面板、计划审查面板提供统一的 Enter / Esc 快捷键

核心功能

下面按面板类型介绍快捷键行为。

面板 Enter Esc
审批面板 Allow once Reject
问题 / 选择面板 Submit / Next Discard the group
计划审查面板 Approve Decline;若面板没有 Decline,则按 Discuss

这些快捷键适用于 DSH 渲染的带按钮交互面板,包括编辑审批、权限提升、工具问题和计划审查。插件没有配置项,也没有设置页。

安装与启用

先安装插件:

dsh plugin --profile web add dsh-approval-hotkeys

这条命令把插件安装到 web profile。安装后,重启 dsh web;如果宿主侧没有变化,由于该插件是纯浏览器端插件,也可以直接刷新页面。经过上面的步骤,面板出现后即可使用 Enter 和 Esc。

典型用法

面板出现后,按键规则如下:

Enter → 面板的主按钮 / confirm action
Esc   → 面板的取消按钮 / cancel action

具体到面板:

1、审批面板:Enter 按 Allow once,Esc 按 Reject
2、问题 / 选择面板:Enter 按 Submit / Next,Esc 按 Discard the group
3、计划审查面板:Enter 按 Approve,Esc 按 Decline;如果面板没有 Decline 动作,则按 Discuss

工作机制

该插件是纯浏览器端插件,宿主侧是一个 no-op stub。所有行为来自一个 documentkeydown 监听器,负责找到当前面板并点击对应按钮。

按钮解析基于位置,而不是稳定语义属性:确认按钮取面板动作行中的主按钮,取消按钮取对应的 RejectDiscardDecline(或 Discuss)。因此它会依赖 DSH 面板的布局约定。

为了避免误触发,插件会跳过以下情况:

  • inputtextareaselectcontentEditable 中按键;
  • Enter 时焦点已经在按钮上,避免重复触发;
  • Ctrl / Meta / Alt 组合键和长按重复键;
  • 没有面板时按 Esc。

没有面板时,Esc 会被原样留给浏览器或 DSH 自身处理。插件不会停止或暂停 agent。

与其他插件的边界

如果其他插件往交互面板里注入非动作按钮(例如装饰性控件、折叠按钮),建议给该按钮标记:

<button data-hotkey="none">Collapse diff</button>

dsh-approval-hotkeys 在解析确认 / 取消按钮时会跳过标记为 data-hotkey="none" 的按钮。这是一个协作式的 opt-out 约定,不是硬保证:如果其他插件没有标记,或注入真正可点击的动作按钮,或 DSH 面板布局发生变化,快捷键仍可能受按钮顺序影响。

开发者安装注意

从本地 checkout 或固定 commit 安装时,可以使用:

dsh plugin --profile web add /path/to/dsh-approval-hotkeys

或:

dsh plugin --profile web add github:SiriLee/dsh-approval-hotkeys#<sha>

某些 git 安装方式在首次运行前,需要在当前 profile 的 pnpm-workspace.yaml 中增加 allowBuilds 键。配置完成后再按上面的安装命令启用插件。

适用场景与注意

适合希望减少在审批、问题选择和计划审查面板中鼠标点击的 DSH 使用者。它是纯浏览器端插件,宿主侧为空 stub,行为限于浏览器侧的 keydown 监听和点击现有面板按钮;不发起网络请求,不访问文件,不读取凭据。

不过,插件仍以当前 dsh 进程所启动的 web 客户端上下文运行,并依赖该页面上下文的 DOM 访问能力。安装前应检查源码与 MIT 许可证,确认当前 DSH 环境、profile 和依赖版本符合预期。

结尾

dsh-approval-hotkeys 的价值在于把 DSH 交互面板的确认与取消动作固定为 Enter / Esc,让审批、选择和计划审查更贴近键盘操作习惯。

  • GitHub:https://github.com/SiriLee/dsh-approval-hotkeys
  • DSH 社区目录:可按插件名 dsh-approval-hotkeys 搜索
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye