dsh-remote-dirpicker:讓 DSH Web 的遠程“新增工作區”目錄選擇保持一致

前言

DSH Web 的“新增工作區”需要在瀏覽器裏完成目錄選擇。通過 nginx 反代、公網域名或局域網 IP 訪問 DSH Web 時,這個選擇動作可能無法在遠程瀏覽器中正常使用。

dsh-remote-dirpicker 的作用是固定使用瀏覽器內目錄瀏覽器(browse)交互,讓遠程訪問和本機訪問使用同一套目錄選擇方式。

下面介紹它的定位、核心功能、安裝方式、典型用法,以及版本、權限和卸載注意事項。

這是什麼

dsh-remote-dirpicker 是一個 MIT 許可證的 DSH 插件,用於 DSH Web 的“新增工作區”目錄選擇。

它通過組合層 patch 調整 DSH 插件組合,不修改 dsh 核心代碼。具體做法是停用 directory-picker-auto,掛載 browse 宿主能力與瀏覽器界面,使目錄選擇以瀏覽器內 browse 方式呈現。

倉庫地址:

https://github.com/gfds2005/dsh-remote-dir-picker

核心功能

這個插件的已覈實能力包括:

  • 固定使用瀏覽器內目錄瀏覽器(browse)交互,本地與遠程表現一致。
  • 遠程訪問時,點擊“新增工作區”可彈出瀏覽器內目錄瀏覽器。
  • 支持瀏覽宿主文件系統,包括麪包屑導航、逐級進入。
  • 支持輸入絕對路徑跳轉。
  • 支持編輯路徑。
  • 支持顯示 / 隱藏隱藏文件。
  • 支持新建文件夾後立即進入。
  • 本機訪問同樣使用瀏覽器內目錄瀏覽器,不再彈出原生對話框。
  • 通過 host.listDirectory / host.createDirectory RPC 提供目錄列表與新建文件夾。
  • 宿主半邊在啓動時檢查 directoryPicker 能力爲 browse,並打印確認信息。

安裝與啓用

安裝前先確認目標 DSH 環境已經可以運行 dsh 命令。下面示例使用 web profile。

從 npm 安裝

dsh plugin --profile web add dsh-remote-dirpicker

從源碼安裝

dsh plugin --profile web add /絕對/路徑/dsh-remote-dirpicker

安裝後檢查

安裝後,dsh.profile.bundles 會追加 dsh-remote-dirpicker 一行。

bundle 組合變更在啓動時讀取,所以安裝後必須重啓 dsh web

典型用法

經過上面的安裝和重啓後,可以按下面的步驟使用:

  1. 打開 DSH Web,進入工作區選擇。
  2. 點擊“新增工作區”。
  3. 在瀏覽器內目錄瀏覽器中瀏覽目錄、輸入絕對路徑、編輯路徑、新建文件夾。
  4. 點擊“打開”創建工作區。

驗證

安裝並重啓 dsh web 後,可檢查以下兩項:

  • boot manifest 包含:
@deepseek-ai/dsh-client-ui-directory-picker-browse
  • browse 客戶端 bundle client.js 可訪問,並返回 200

卸載

如果需要恢復原有行爲,執行:

dsh plugin --profile web remove dsh-remote-dirpicker

卸載後重啓 dsh web,即恢復 dsh 默認的 directory-picker-auto 行爲。

適用場景與注意

適用場景

適合通過 nginx 反代、公網域名、局域網 IP 訪問 DSH Web 的場景。

目標平臺爲 DSH Web 宿主(macOS / Linux / Windows),目錄瀏覽跨平臺。

版本信息

已覈實資料中的版本信息如下:

  • package.jsonversion 爲:
"version": "0.1.1"
  • README 版本記錄:0.2.0 已廢棄並回退至 0.1.0,建議始終使用 0.1.0 或更高穩定版本。

依賴聲明

package.json 中的 peerDependencies 聲明如下:

{
  "peerDependencies": {
    "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-client-ui-workspace": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.0-rc.6",
    "@deepseek-ai/cordis": "^4.0.1"
  }
}

權限與安全

browse 能力僅通過 dsh 自身 RPC 通道暴露,遵循 dsh 現有訪問控制,不引入額外開放端口。

由於目錄瀏覽會訪問宿主文件系統,插件以當前 dsh 進程權限運行。安裝前應先檢查源碼與許可證。

結尾

dsh-remote-dirpicker 的價值在於把 DSH Web 的“新增工作區”目錄選擇固定到瀏覽器內,使遠程訪問和本機訪問表現一致,同時保持不修改 dsh 核心代碼的組合層方式。

GitHub:

https://github.com/gfds2005/dsh-remote-dir-picker
羽毛球分组比赛记分
小程序二维码

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

小夜