dsh-permission-no-confirm:切換權限模式時跳過風險確認彈窗

前言

在 DeepSeek Harness(DSH)裏開發或調試智能體時,經常要在「只可查看」「工作區內修改」「完全權限」「自動審查」之間切換。選「完全權限」或「自動審查」時,原版界面會先彈出「確認啓用完全權限?」一類風險確認框,還要勾選聲明再點確認。對需要頻繁切權限的同行來說,這一步會打斷操作節奏。下面介紹社區插件 dsh-permission-no-confirm(維護者 SwufeFox,分類 admin-security):它只去掉這層確認彈窗,其餘入口、文案和權限行爲仍走 Harness 原有邏輯。

這是什麼

dsh-permission-no-confirm 是 DSH 的 bundle 型插件(MIT 許可證,當前 package 版本 1.0.0)。一句話定位:在三個常見入口裏選中「完全權限」或「自動審查」時直接生效,不再出現原版的風險確認彈窗。

Harness 原版把風險彈窗寫死在權限 UI 模塊裏,沒有對外開關。本插件通過 Cordis 補丁禁用原版 ui-permission 行,改由本包提供的瀏覽器端模塊渲染同一套權限界面,僅在實現上移除三處「門禁」:彈層選擇分支、設置行選擇分支,以及 /permission 選項上的 confirmation 元數據。關閉的是確認 UI,不是權限模式本身;切到完全權限或自動審查之後,沙箱與審批仍由當前模式決定。

涉及的三個入口

資料中與原版一致、本插件仍保留的入口如下:

  • 當前會話:輸入框旁的權限按鈕(只可查看 / 工作區內修改 / 完全權限 / 自動審查)
  • 新會話默認:設置 → 通用 → 權限
  • 斜槓命令:/permission

在上述任一入口選擇「完全權限」或「自動審查」時,原版會先彈窗;安裝本插件後選擇會立即調用切換函數,圖標與文案不變。

安裝與啓用

插件以 bundle 形式安裝,使用 Harness 的 plugin_manager,不要憑插件名自行拼接 dsh plugin add github:... 一類命令。資料中的安裝方式爲:

本地或已下載的插件目錄:

plugin_manager install_bundle  target=<本目錄絕對路徑>

也可通過 plugin_manager install_bundle 工具,將 target 指向插件根目錄。安裝成功後,在 設置 → 插件 中可見名稱爲「權限切換免確認」的插件行。

從 GitHub 獲取源碼後,同樣把 target 指向該目錄(profile 中爲目錄鏈接,更新時可對該目錄做版本同步後再使用 bundle)。倉庫地址:https://github.com/SwufeFox/dsh-permission-no-confirm。

安裝前請自行閱讀倉庫源碼與 MIT 許可證;插件會在當前 DSH 進程權限下運行,與社區目錄站點一樣,並非 DeepSeek / 幻方官方應用商店條目,安裝決策需自行評估。

典型用法

安裝並完成 bundle 啓用後,無需額外配置項。按平時習慣操作即可:

  1. 在會話輸入框旁打開權限菜單,點選「完全權限」或「自動審查」,應直接切換,無風險確認層。
  2. 在 設置 → 通用 → 權限 中修改新會話默認,選中上述兩種模式時同樣免確認。
  3. 在聊天中執行 /permission,在彈層裏選擇對應項,選項不再攜帶會觸發通用確認框的 confirmation 元數據。

若需驗證插件產物行爲,維護者在倉庫中提供了 Node 測試(需在插件目錄內、且已具備依賴環境時執行):

node --test test/client.test.mjs

測試加載真實 lib/client.js,斷言權限插槽與 /permission 裝飾註冊正常,且渲染樹中不存在 RiskConfirmation。

實現要點(便於排查問題)

瞭解實現方式有助於判斷是否與當前 Harness 版本兼容:

  1. cordis.patch.yml 將原版行 ui-permission 設爲 disabled: true。
  2. 同一補丁插入本包行 permission-no-confirm,由 lib/client.js 提供 UI。
  3. lib/client.js 由 scripts/build-client.mjs 從已安裝的原版 @deepseek-ai/dsh-client-ui-permission-presets 派生;腳本對每處改動做行斷言,原版結構變化時會構建失敗而非靜默產出錯誤文件。

因此,官方若調整權限界面(新入口、新預設或新風控),本插件不會自動跟隨,需要重新運行 node scripts/build-client.mjs 並覈對差異。

適用場景與注意

適合:本地或受控環境中頻繁切換完全權限 / 自動審查、且你已理解高權限風險的開發者。

務必注意:

  • 不要單獨停用插件行 permission-no-confirm:原版 ui-permission 已被補丁禁用,單獨停用會導致權限控件從界面消失。若要恢復原版彈窗,應在 bundle 級別停用或卸載,例如:
  plugin_manager remove_bundle target=dsh-permission-no-confirm

移除後原版行恢復啓用,風險確認彈窗迴歸。

結尾

dsh-permission-no-confirm 解決的是「切到高權限模式前多一步確認彈窗」的操作摩擦,不改變權限模式語義。若你的 workflow 需要保留官方風險提醒,請勿安裝;若已安裝並想回到原版交互,用 plugin_manager remove_bundle 卸載 bundle 即可。

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

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

小夜