前言¶
DSH 講「一切皆插件」,但權限這件事本身沒有專門的界面:Settings → General 裏只有一行 permission 配置,想改默認值得自己找配置項,想把某個已經開着的會話提到 Full access 也沒有入口。dsh-permission-guard 就是這個缺口的補丁——它不發明新權限模型,只是把 DSH 已有的權限預設搬到一個獨立頁面上,用兩個按鈕覆蓋「新建會話」和「已有會話」這兩類真實操作。
這是什麼¶
frostnova04 維護的 DSH 插件,分類屬於 admin-security。它提供一個 Permission Settings(權限設置) 頁面,掛在 Settings 下,解決兩個問題:一是讓之後新建的會話默認以 Full access 啓動,二是把已經存在的會話逐個加入允許名單。當前版本 0.1.0,MIT 許可證,倉庫裏沒有星標(0)。
它不是防火牆,也不是沙箱。頁面裏的所有寫入,都是在調用 DSH 已經有的預設。
核心功能¶
頁面上只有兩類操作。
1、新建會話默認值(New-session default)
一個按鈕把默認權限切到 Full access,從此新建的會話都以該權限啓動;另一個按鈕恢復安全的 Workspace write 默認值。切換前頁面會彈確認,並用平實的話說明風險。
2、已有會話允許名單(Existing-session allowlist)
已經存在的會話保持各自的權限,不會被批量改動。可以逐個把它們提升到 Full access,一次一個。
爲什麼要單獨開頁面
DSH 原生在 General 只有一行 permission 設置。這個插件給同一個寫入路徑做了專用頁面,把「新建的開關」和「舊會話的列表」分成兩個操作,就是用戶實際會來問的兩件事。
底層做了什麼
- 新建會話默認值:寫入
permission設置命名空間的defaultPreset,DSH 創建會話時讀取它。改這個值不會影響任何已有會話。 - 允許名單條目:執行的是
/permission命令同樣的預設寫入,因此改動記錄在該會話自己的日誌裏,重啓後仍然生效。 - Full access 的含義:sandbox 爲
danger-full-access,approval policy 爲never。沒有確認彈窗,寫入範圍是 DSH 進程能訪問到的所有文件。
也就是說,這個插件沒有新增權限體系,只是給已有預設換了個操作界面。
安裝與啓用¶
插件市場:等它上架後,可以從應用內的 Settings → Plugins 安裝。目前在倉庫階段,用 CLI 一條命令同時把包加入 profile 並註冊 bundle:
dsh plugin --profile desktop add github:frostnova04/dsh-permission-guard
profile 名不一樣就替換 desktop。也可以用鎖定版本的 tarball:
dsh plugin --profile desktop add https://github.com/frostnova04/dsh-permission-guard/releases/download/v0.1.0/dsh-permission-guard-0.1.0.tgz
裝完重新加載窗口,頁面出現在 Settings → Permissions(權限設置)。
前置要求:
- DSH 0.2.1-rc.5 或更高版本,desktop app 和
dsh web都支持。 - 標準
settings與permission-presets插件,標準組合默認包含。
典型用法¶
1、在 DSH 裏打開 Settings → Permissions。
2、想讓接下來的調試或實驗不必每次確認:點默認值按鈕切到 Full access,確認彈窗裏讀完風險說明再確定。
3、比如某個長時間掛着的會話需要放開寫權限,在 allowlist 裏選中它,提升到 Full access;這個改動寫進該會話自己的日誌,重啓後仍保留。
4、調試結束,用第二個按鈕把默認值還原到 Workspace write。
適用場景與注意¶
適合需要反覆切換權限默認值、又不能重啓或重建會話的開發者,尤其是團隊裏有人想給臨時會話放開寫權限的場景。
幾點要注意:
- Full access 意味着無確認彈窗、可寫 DSH 進程能觸及的任何文件。這個插件會在啓用前提示風險,但開關一旦打開,防線就是用戶自己了。
- 插件以當前 dsh 進程的權限運行,不做額外的提權或隔離;安裝前應檢查源碼與許可證。
- 它不批量改已有會話,想一次放開多個會話需要逐個點。
- 目錄站點是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,這只是社區插件。
小結¶
dsh-permission-guard 的價值不在於發明了新的權限控制,而是把 defaultPreset 和 /permission 這兩處已有寫入,包裝成了一個能看清、能逐個操作、切換前會確認的頁面。它把「新建會話默認值」和「單個已有會話」做成兩個獨立操作,正好補上 General 裏那一行設置做不到的事。
目錄頁:https://www.skillhub.cn/plugins/frostnova04/dsh-permission-guard
GitHub:https://github.com/frostnova04/dsh-permission-guard