前言¶
DeepSeek Harness(DSH)的權限審批卡片本身支持 Enter 和 Escape,但只有在鍵盤焦點位於卡片上時才生效。當請求到來時,卡片會替換編輯器,焦點自動回到 body,導致按 Enter 不起作用。這迫使開發者不得不把鼠標點回卡片,破壞了鍵盤流。dsh-approval-enter 解決這個問題,讓審批過程完全通過鍵盤完成。
是什麼¶
這是一個爲 DeepSeek Harness(DSH)客戶端設計的插件,由維護者 wood007924 開發。它的核心價值是:當權限請求的審批卡片出現時,插件自動將焦點引導至卡片區域,並捕獲鍵盤事件,讓 Enter 對應「允許一次」,Escape 對應「拒絕」。插件不自動審批、不靜默超時,審批邏輯仍走 DSH 原生的鎖機制、IME 守衛和重複鍵守衛。
核心功能¶
- 自動聚焦:當審批卡片出現時,插件將焦點移到卡片的
tabindex=0區域。 - 捕獲階段監聽:如果焦點不在卡片上,插件在捕獲階段攔截
Enter/Escape,先聚焦卡片,再把按鍵事件重新觸發到卡片,使其內置的審批邏輯生效。 - 不干擾其他輸入:插件不會從文本字段搶走焦點,也不會處理除
Enter/Escape以外的按鍵。 - 依賴 DSH 原生邏輯:審批結果仍由 DSH 的 pending-request 鎖、IME 守衛和重複鍵守衛控制,不會繞過這些安全機制。
安裝與啓用¶
從 npm 安裝(需插件已發佈):
dsh plugin --profile <profile> add dsh-approval-enter
從本地 checkout 安裝(開發調試):
dsh plugin --profile <profile> add link:/absolute/path/to/dsh-approval-enter
或手動方式:把包放入 <DSH_HOME>/profiles/<profile>/plugins/,鏈接到該 profile 的 node_modules,並在 profile 的 package.json 中添加 dsh.profile.bundles 條目。
安裝後需要重啓 DeepSeek Harness,插件纔會生效。
典型用法¶
- 打開 DSH,進入插件管理頁面,確認「Enter to approve」插件已啓用。
- 觸發一個需要審批的操作(權限模式下才會出現審批卡片)。
- 不要使用鼠標,直接按
Enter,請求應立即被允許。 - 再觸發一次,按
Escape,請求應被拒絕。
注意:只有權限模式會彈出審批卡片。在「完全訪問」模式下 DSH 不會詢問,因此沒有卡片可確認,這是預期行爲。
適用場景與注意¶
適合習慣鍵盤流、希望減少鼠標操作的 DSH 用戶。插件運行在 DSH 進程的權限上下文中,應確保來源可信、查看許可證後再安裝。當前版本兼容 DSH 0.2.1-rc.2(桌面、Web UI)。插件依賴 @deepseek-ai/dsh-client-ui-approval 暴露的 [data-approval-key](卡片根)和 [data-approval-scroll](可聚焦區域)兩個屬性,若未來 DSH 更改這些屬性,需要更新 client.js 中的選擇器。
結尾¶
dsh-approval-enter 讓審批流程迴歸鍵盤,減少鼠標操作,提升操作連貫性。如需更多信息或提交問題,可訪問插件目錄或 GitHub 倉庫。
- 插件目錄:https://www.skillhub.cn/plugins/wood007924/dsh-approval-enter
- GitHub:https://github.com/wood007924/dsh-approval-enter