前言¶
在 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。
典型用法¶
安装并重启后,在侧边栏工作区或会话里触发「添加工作区」,弹窗即由本插件渲染。
- 需要换盘时,点盘符条上对应 chip,直接进入该盘根。
- 需要深层目录时,用面包屑或列表逐级进入,或用路径框粘贴如
D:\work\project后回车。 - 关闭弹窗后再次打开,若
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 共用远程配置。