dsh-keynav:DSH Web 面板的鍵盤導航

前言

在 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 激活對應編號選項

焦點規則(卡片出現或回到某題時):

  1. 若已有選中項,聚焦第一個已選選項;
  2. 否則若自由文本框是唯一答案,聚焦文本框;
  3. 否則聚焦第一個選項。

插件會攔截選項上的 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 中:

  1. 出現提問卡時,用 ↑ ↓ 在選項與文本框間移動;單選用 Space 或 Enter,多選用 Space 切換。
  2. 需跳題時用 ← →(不繞回)。
  3. 計劃審閱或審批卡出現時,用方向鍵在按鈕間切換,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
羽毛球分组比赛记分
小程序二维码

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

小夜