前言¶
在 DeepSeek Harness(DSH)的 Web 端,提问卡、计划审阅与审批卡会接管 Composer 区域。这类面板选项多、需要逐项确认时,纯鼠标操作效率偏低。Claude Code 一类环境里常见的「方向键走位 + 空格选中 + 回车提交」习惯,在默认 DSH Web 面板里并不完整:例如问题卡在选项上按 Enter 时,宿主往往按整批提交处理,前面仍有未答题目时会报 incomplete。
下面介绍社区客户端插件 dsh-keynav(维护者 quoc187),为上述面板补齐键盘导航,且不改动宿主 React 状态、不 fork 原生组件。
这是什么¶
dsh-keynav 是纯客户端插件:监听面板上的 data-* 钩子(如 data-question-key、data-option-row、data-plan-review-key、data-approval-key),维护焦点并通过真实 click 驱动已有按钮。分类为客户端;当前 GitHub 星标为 0。许可证 MIT,package 版本 0.1.0。
若未来 DSH 重命名这些钩子,插件会静默失效而不是破坏 Composer——这是有意为之的容错策略。
核心功能¶
问题卡(Question card)¶
| 按键 | 行为 |
|---|---|
↑ ↓ |
沿选项环行走,再进入自由文本框;两端可循环 |
← → |
上一题 / 下一题(不循环);在文本框内仅当光标已在边缘时生效 |
Space |
多选切换;单选则选中当前项 |
Enter |
先提交当前高亮单选项,再点卡片自带的 Next/Submit |
1–9 |
激活对应编号选项 |
焦点规则(卡片出现或回到某题时):
- 若已有选中项,聚焦第一个已选选项;
- 否则若自由文本框是唯一答案,聚焦文本框;
- 否则聚焦第一个选项。
插件会拦截选项上的 Enter:避免宿主一次性提交整批导致 incomplete,改为先提交高亮选项再点 Next/Submit。
计划审阅 / 审批卡(Plan review / approval)¶
| 按键 | 行为 |
|---|---|
↑ ↓ ← → |
在决策按钮之间移动焦点 |
Space / Enter |
激活当前聚焦按钮 |
两类卡片默认聚焦主按钮。当前聚焦行使用卡片自带 hover 背景 + 细 accent 内描边,与卡片的「已选中」状态(背景 + 淡边框)区分开,避免键盘光标被误认为选中态。
安装与启用¶
插件在 web profile 下安装;bundle 列表在进程启动时读取,仅刷新页面不会加载新插件,安装后须重启 profile。
从 GitHub 安装¶
dsh plugin --profile web add github:quoc187/dsh-keynav
node install.mjs --bundle-only # adds "dsh-keynav" to dsh.profile.bundles
本地 checkout(非 git clone 场景下的开发链接)¶
若你已有本地源码目录,可用仓库提供的链接方式:
node install.mjs # link the package and register the bundle
dsh plugin --profile web install # materialise the link
辅助命令:
node install.mjs --check # is the profile pointing here?
node install.mjs --revert # restore the pre-install package.json
指定 profile 目录:
DSH_PROFILE_DIR=/path/to/profile node install.mjs
安装后重启 DSH web profile,再在提问 / 计划审阅 / 审批面板中试用方向键与 Enter。
典型用法¶
在已启用插件的 Web Composer 中:
- 出现提问卡时,用
↑↓在选项与文本框间移动;单选用Space或Enter,多选用Space切换。 - 需跳题时用
←→(不绕回)。 - 计划审阅或审批卡出现时,用方向键在按钮间切换,
Space或Enter确认。
调试时可在浏览器控制台开启日志:
localStorage.setItem('dsh-keynav:debug', '1');
会输出每次焦点决策与主按钮点击,便于对照面板 DOM 钩子是否仍与当前 DSH 版本一致。
适用场景与注意¶
适合谁:长期在 DSH Web 端处理多步提问、计划审阅与审批、希望少移鼠标、习惯键盘流的操作者。
权限与安全:客户端插件随当前 DSH 进程在浏览器侧运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。
生态说明:DSH 奉行「一切皆插件」;社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
测试(仓库维护者自测方式,供核对行为):
npm install --no-save jsdom
node test/keynav.test.mjs
结尾¶
dsh-keynav 在不侵入宿主组件的前提下,为 DSH Web 提问、计划审阅与审批面板补齐方向键、空格、回车与数字键操作,并单独处理问题卡 Enter 以避免整批 premature 提交。需要时可从目录页或 GitHub 获取安装说明并重启 web profile 后使用。
- 目录页:https://www.skillhub.cn/plugins/quoc187/dsh-keynav
- GitHub:https://github.com/quoc187/dsh-keynav