dsh-enter-approve:在 Web 端用全局 Enter 批准待處理的授權請求

前言

在 DeepSeek Harness(DSH)裏開發智能體時,工具調用、文件訪問等操作常會彈出授權確認。官方 UI 組件 @deepseek-ai/dsh-client-ui-approval 在焦點已經落在確認卡片內時,按 Enter 可以批准;但面板接管 composer 後,焦點往往落在 document.body 上,此時 Enter 沒有反應,需要先點卡片或 Tab 進面板。若你習慣 Codex 一類產品裏「有待辦確認時,焦點在哪都能 Enter 批准」的交互,這個缺口會反覆打斷操作節奏。社區插件 dsh-enter-approve(維護者 mad-zero-mess,分類 admin-security)專門補上這一步:在 Web 配置下,對可見的待處理授權請求,在合適條件下用裸 Enter 觸發批准,而不必先移焦點。

這是什麼

dsh-enter-approve 是面向 DSH Web 客戶端的社區插件(package.json 中 dsh.client.platform 爲 web)。它不修改 DSH 核心文件,而是通過文檔化的 window.__ModuleLoader__ 客戶端契約和與其他社區插件相同的 dsh.bundle.patch 注入一段約 90 行的 client/client.js:在 document 上註冊 capture 階段的 keydown 監聽,在「焦點不在確認面板內、但界面上確有可見待辦」時,代點批准按鈕;若焦點已在面板內,則立刻退出,交給官方處理器,行爲與未裝插件時一致。

官方 UI 與插件的分工

官方批准組件在 React 樹裏處理按鍵,並帶有「事件須 originated 於面板內」一類的守衛(README 引用了類似 event.currentTarget.contains(document.activeElement) 的判斷)。合成事件沿 React 樹分發,焦點在 body 上時 Enter 到不了面板內的 handler。插件只在「原生路徑已失效」的那一種情況下介入:全局捕獲 Enter,再點擊操作行裏最後一個仍啓用的、且文案不是已知「拒絕」標籤的控件,以降低誤點拒絕的風險。

核心行爲(已覈實)

情況 結果
有待辦,焦點在面板外 Enter 批准
有待辦,焦點已在面板內 官方邏輯不變
正在 input / textarea / select / contenteditable 中輸入 不攔截
IME 組字進行中 不攔截
Enter 帶 Ctrl / Alt / Shift / Meta 不攔截
提示已在應答(aria-busy) 忽略
其他會話的隱藏提示 忽略
Esc 從不攔截

判定「是否該出手」時還會排除自動連按(auto-repeat)。插件不能替你執行任意命令或讀文件,只能在已有可見待處理授權的前提下,模擬點擊批准控件。

安裝與啓用

要求 DSH 版本滿足 engines.dsh:>=0.2.0-rc.2(見倉庫 package.json)。安裝命令以 README 爲準:

dsh plugin --profile web add dsh-enter-approve

重啓宿主進程後,在 Settings → Plugins 中確認出現該插件條目。卸載:

dsh plugin --profile web remove dsh-enter-approve

禁用插件即可恢復 stock 行爲,不會在磁盤上改寫 DSH 本體文件。

典型用法

  1. 在 Web profile 下安裝並重啓 DSH。
  2. 觸發一次需要用戶批准的操作(例如工具權限),使授權卡片以 composer takeover 形式出現。
  3. 不要點擊卡片、也不要 Tab 進面板;在不在文本框內的狀態下按一次 Enter(無修飾鍵),應等同於點擊批准。
  4. 若你已在卡片內操作,或正在輸入框裏打字,行爲應與未安裝插件時相同。

沒有額外配置文件;實現集中在 hand-written、無第三方依賴的客戶端 bundle。

適用場景與注意

  • 適合:長期在 DSH Web 端開發、頻繁遇到授權彈窗,且希望鍵盤流與 Codex 式「全局 Enter 批准」一致的用戶。
  • 範圍:僅 Web profile(--profile web);CLI 或其他 profile 不在該插件聲明的客戶端平臺內。
  • 安全與信任:插件以當前 DSH 進程權限運行,安裝前建議在 GitHub 閱讀 client/client.js 與許可證(MIT)。它只處理裸 Enter 且僅在有可見待辦時點擊批准控件;仍屬第三方社區擴展,社區目錄站點與 DeepSeek / 幻方無官方從屬關係,需自行判斷是否納入工作流。

結尾

dsh-enter-approve 用最小客戶端補丁,把「焦點不在授權卡片上時 Enter 無效」這一 UX 缺口補上,並與官方 handler 共存:面板內仍走原邏輯,面板外才代點批准。當前版本 0.1.0,倉庫星標爲 0。

羽毛球分组比赛记分
小程序二维码

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

小夜