dsh-workspace-drive-picker:给 DSH「添加工作区」补上盘符直达与目录记忆

前言

在 Windows 上给 DeepSeek Harness(DSH)添加工作区时,自带目录选择器只能沿当前盘符的目录树向上走。走到 D:\ 就再也上不去,跨不到 C:\ 或其他盘;面包屑还会在用户主目录处折叠,把通往其他盘的路径藏起来。想换盘往往只能手打绝对路径。

dsh-workspace-drive-picker 是社区维护者 Charlotteyi5 发布的 DSH 客户端插件,接管「添加工作区」相关的目录流界面,补上盘符条、完整面包屑、路径框与上次目录记忆等能力。本文介绍其定位、功能、安装方式与使用注意。插件目录见 SkillHub,源码与说明见 GitHub。

这是什么

插件全名 dsh-workspace-drive-picker(npm 包名同),一句话:给 DSH 的「添加工作区」选择器加上盘符一键直达,并记住上次停留的目录。

它通过 DSH 的 slot 机制接管两个目录流位置:sidebar.workspaces.directoryFlow 与 conversation.hero.workspace.directoryFlow。优先级设为 −1000(低于 dsh-remote-ssh 的 −100 与官方 browse 的 0),在遮蔽语义下由本插件负责渲染;卸载后原界面会恢复,无需改其他配置。

核心功能

下面按 README 已写明的能力归纳,均为本机「添加工作区」弹窗内的行为。

盘符条与卷信息

  • 一排 chip,点击直接跳到对应盘根。宿主侧枚举 A:–Z:,仅实际可访问的盘出现。
  • 每个 chip 显示卷标与剩余空间(示例形态:C: System 316.7G);悬停可看完整路径与总容量。
  • 卷标与容量在 Windows 上通过 PowerShell 查询 Win32_LogicalDisk(DriveType=3,仅本地固定磁盘);结果缓存 2 分钟。查询失败时降级为无卷标、不显示剩余空间,弹窗仍可用纯盘符。

导航与输入

  • 常用目录:下载、文档、桌面快捷入口。
  • 常显路径框:粘贴任意绝对路径,回车跳转。
  • 完整面包屑:从根展示,不在主目录处折叠。
  • 新建文件夹:在当前层创建并进入。

记住上次目录

状态写在宿主文件 ~/.dsh/workspace-drive-picker.json,例如:

{ "path": "D:\\work", "tab": "local" }

GUI 每次重启端口会变,localStorage 按源隔离无法可靠记住偏好,故由宿主持久化。写入为 best-effort;文件损坏或不存在则视为未记住。若记住的路径已删除或盘未挂载,列举会失败并在弹窗内报错,仍可通过盘符条或路径框继续操作。

本机与远程标签

弹窗提供「本机 / 远程」两个标签。远程侧复用已安装的 dsh-remote-ssh 所配置的 SSH 连接与工作区,无需在本插件里重配。远程面板仅列目录,不在远端建文件夹(远端建目录请用 dsh-remote-ssh 自带设置页)。

安装与启用

官方 README 给出的安装方式是将仓库放到本地后,用 file: 路径登记插件(不是凭仓库名拼接 dsh plugin add github:...)。

# 把仓库放到本地任意位置,在该目录执行:
dsh plugin --profile desktop add file:<仓库所在的绝对路径>

示例(仓库在 D:\plugins\dsh-workspace-drive-picker):

dsh plugin --profile desktop add file:D:\plugins\dsh-workspace-drive-picker

若 CLI 不可用,可在 ~/.dsh/profiles/desktop/package.json 的 dependencies 中加入 file: 引用,并加入 dsh.profile.bundles,再执行 pnpm install。

装完后重启 DSH 桌面端并刷新页面。卸载时从 package.json 移除依赖与 bundle 条目,pnpm install 后重启即可。

运行环境要求 Node >=20(见 package.json 的 engines)。许可证为 MIT。

典型用法

安装并重启后,在侧边栏工作区或会话里触发「添加工作区」,弹窗即由本插件渲染。

  1. 需要换盘时,点盘符条上对应 chip,直接进入该盘根。
  2. 需要深层目录时,用面包屑或列表逐级进入,或用路径框粘贴如 D:\work\project 后回车。
  3. 关闭弹窗后再次打开,若 workspace-drive-picker.json 中仍有有效路径,会回到上次停留层;tab 字段可区分本机 / 远程标签。

若同时使用 dsh-remote-ssh,在「远程」标签下浏览与选择远程工作区目录,行为与远程插件已配好的连接一致。

开发或排障时,仓库提供不依赖 GUI 的冒烟脚本,例如:

node smoke.mjs

用于验证宿主侧路由、盘符枚举与 CSRF 栅栏等(详见 README「测试」一节)。

适用场景与注意

适合谁:主要在 Windows 上用 DSH 桌面端添加本机工作区,且经常在多盘符之间切换的开发者;已装 dsh-remote-ssh 的用户可在同一弹窗里切换本机与远程目录。

安全与边界(插件以当前 DSH 宿主进程权限运行,安装前请自行审阅 源码 与 MIT 许可证):

  • 路由要求 X-Requested-With 头,与同宿主其他插件一致的 CSRF 防护。
  • 远程代理仅放行 listProfiles / listDir / mkdir / createRemoteWorkspace,不能当作通用 SSH 控制台。
  • 单层列举上限 500 条,请求体上限 1 MB。

已知限制:

  • 盘符通过 readdir('X:\\') 探测;读不动但存在的卷(如权限全拒)不会出现在盘符条,仍可从路径框手打进入。
  • 卷标查询依赖 Windows 与 PowerShell;非 Windows 或策略拦截时会降级显示。

结尾

dsh-workspace-drive-picker 针对 Windows 多盘符下 DSH 自带选择器「上不去、面包屑藏路」的问题,用客户端插件方式增强「添加工作区」体验:盘符 chip、完整导航、路径框与宿主侧目录记忆,并与 dsh-remote-ssh 共用远程配置。

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

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

Xiaoye