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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye