DeepSeek Harness (DSH) 采用插件架构,默认的侧边栏工作区视图功能相对基础。对于需要管理多目录工作区或频繁在文件树与对话之间切换的开发者来说,这种视图限制了操作效率。dsh-multi-root-explorer 插件旨在替换 DSH 原生侧边栏的工作区区域,将其改造为一个双标签的多根浏览器:左侧为按真实工作目录分组的对话树,右侧为可预览文件的只读资源树。
插件简介¶
dsh-multi-root-explorer 是由开发者 Nethur-auro 维护的 DSH 客户端插件。它不依赖额外的运行时库,仅使用 DSH 客户端模块加载器自带的 React。
核心价值在于:
1. 固定多根工作区:导入的目录保持固定,不会因为会话的增减而重新计算。
2. 对话即目录树:将每个会话的真实工作目录 (cwd) 作为文件夹结构进行展示。
3. 资源树同步:只读的资源树按需加载,并实时检测磁盘变更,仅刷新实际发生变化的层级。
核心功能¶
固定多根工作区
导入的目录是固定的,不会像原生视图那样随会话上下文自动重算。
对话作为目录树
每个会话根据其真实的 cwd 被归入对应的文件夹。位于工作区根目录之外的会话可以作为锚点保留;没有 cwd 的会话会被单独分组。
资源树(只读)
资源树采用按需加载和分页策略,打开大容量驱动器不会导致磁盘全量扫描。点击文件会通过 DSH 原生右侧侧边栏打开文件,而不影响主对话的位置。
磁盘变更感知
资源树会定期探测已加载目录层级在磁盘上的变更,仅重新获取真正发生变化的层级,已手动展开的层级不会因此被折叠。
统一选择机制
插件引入了“选择模式”(通过眼睛按钮开启)。在此模式下,选择一个文件夹会选中其整个子树;选择一个子节点会排除该节点(相当于选中父节点的兄弟节点);双击已选中的文件夹会提交一个空文件夹。所有操作均通过 Host 读取,未展开的文件夹也能被正确选中。
文件夹操作
在任意文件夹上点击右键或尾部的 ··· 按钮,可以:
* 在该目录启动新会话(标题留空,由 DSH 标题器根据首条消息命名)。
* 在系统文件管理器中打开该目录。
* 对于资源树,可复制其绝对路径。
拖放引用
将资源树中的行拖入对话编辑器,会生成一个原生的“原子引用”(文件图标、文件名、业务色),效果与从 @ 菜单中选中的候选文件一致。
@ 菜单覆盖
DSH 原生的文件补全索引仅限于当前会话目录。本插件注册了自己的 @ 源,覆盖所有已注册的工作区根目录,提供更全面的文件索引。
诚实的工作状态
状态卡片和行图标不仅显示主 Agent 的状态,还会显示子 Agent 是否仍在工作,以及目标是否仍在进行中。
原生归档支持
支持通过 DSH 自身的服务对会话进行归档和解档,归档状态与永久删除区分清晰。
卸载后存活
在插件运行期间,承载普通会话的目录会被注册为 DSH 的原生工作区。即使禁用或卸载插件,这些工作区及其关联的对话也不会消失。
安装与启用¶
本插件要求 DeepSeek Harness 版本 >= 0.2.0-rc.1,且浏览器需支持 Popover API (element.showPopover)。安装后必须重启 DSH 应用和 Host 以加载路由。
请根据你的环境选择以下任一命令(需替换 <your-profile>):
dsh plugin --profile <your-profile> add dsh-multi-root-explorer
或从 GitHub 发布页获取最新构建:
dsh plugin --profile <your-profile> add https://github.com/Nethur-auro/dsh-multi-root-explorer/releases/latest/download/dsh-multi-root-explorer.tgz
或直接从 Git 仓库安装源码(始终指向 main 分支):
dsh plugin --profile <your-profile> add git+https://github.com/Nethur-auro/dsh-multi-root-explorer.git
安装完成后,侧边栏的工作区区域应显示 对话 / Conversations 和 资源 / Resources 两个标签页。如果区域未变化,请确认已重启 DSH。
典型用法¶
- 新建会话:在对话树中右键点击任意文件夹,选择“在此目录启动新会话”。
- 插入文件引用:在资源树中找到目标文件,拖拽该行到对话输入框中,松开鼠标即可生成引用。
- 提交空文件夹:在对话树中选中一个文件夹,双击该文件夹,该文件夹会被选中并提交为空内容(此时子节点保持选中状态)。
适用场景与注意事项¶
- 状态:插件目前处于预览状态。自动化测试套件已通过,但尚未对每次 DSH 构建进行实时的运行时验收测试。
- 安全限制:插件通过 HTTP 路由提供服务,拒绝非 Loopback 端口、非 Loopback Host 头以及跨站请求。
- 生态说明:本插件属于 DSH 生态的一部分,与 DeepSeek 或幻方官方无官方从属关系。
通过该插件,开发者可以更清晰地管理基于目录的会话结构,并在文件操作与对话交互之间获得更顺滑的体验。