DSH(DeepSeek Harness)在处理审批卡片时存在一个交互痛点:当卡片(@deepseek-ai/dsh-client-ui-approval)出现时,浏览器会隐藏原始输入框(display:none),导致焦点丢失。默认情况下,Enter 和 Esc 键仅在焦点位于卡片内时生效。这意味着用户必须先手动点击卡片文本,才能使用快捷键。dsh-approval-autofocus 修复了这个断层。
这是什么¶
这是一个 DeepSeek Harness 的客户端插件,由 chupeter854-lang 维护。它监听 DOM,当检测到审批卡片出现且当前焦点处于空闲状态(如 <body> 或被隐藏的 composer)时,自动将焦点移入卡片的详情区域。这允许用户直接通过键盘快捷键进行操作。
核心功能¶
- 自动聚焦:卡片出现且无其他焦点占用时,自动进入详情区域。
- 键盘绑定:
Enter触发批准,Esc触发拒绝。 - 焦点保护:不会干扰终端、对话框或输入框中的焦点。
- 兼容性回退:基于
data-approval-scroll属性和[tabindex="0"]选择器(排除按钮)进行兼容。
安装与启用¶
1. 从归档安装(推荐)¶
- 将插件文件夹解压到固定目录,例如
~/plugins/dsh-approval-autofocus。 - 在 DSH 侧边栏点击 Plugins -> Add plugin。
- 粘贴该文件夹的绝对路径。
- 点击 Enable now。如果页面提示,重启 DSH。
2. 从 Git 仓库¶
在添加插件对话框中粘贴仓库 URL。目前没有托管仓库,该归档即为最终形式。
3. 手动配置¶
编辑 ~/.dsh/profiles/<profile>/package.json,在 dsh.profile.bundles 中添加包名;或者在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中插入一行配置。
- insert:
- id: approval-autofocus
name: dsh-approval-autofocus
典型用法¶
- 当审批卡片出现时,焦点会自动进入卡片,直接按
Enter批准,按Esc拒绝。 - 在终端或输入框中打字时,插件不会抢占焦点。
注意事项与限制¶
- 安全提示:插件仅移动焦点,不模拟按键。但如果模型输出试图诱导你按下 Enter,由于焦点已被预置在卡片上,可能会导致意外批准。建议在需要确认时点击远离卡片,或禁用插件。
- 兼容性:基于 DSH 0.2.0-rc.2 构建。如果 DSH 重新调整卡片结构,插件可能静默失效。
- 非官方:这是社区维护的插件,非 DeepSeek 官方组件。
结语¶
该插件通过自动管理焦点,让审批流程更符合键盘操作习惯。更多细节可参考 GitHub 仓库。