前言¶
DeepSeek Harness (DSH) 插件生态强调模块化。在开发或调试过程中,会话数量增多后,直接通过列表管理变得低效。dsh-session-folders 插件为 DSH 会话引入了一个独立的文件夹层级。它不依赖核心工作区模型,而是通过持久化的注册表来管理会话与文件夹的映射,适合需要按目录归档和隔离项目记忆的场景。
核心功能¶
持久化注册表¶
插件维护一个独立的 DSH 存储域来存储文件夹定义和 sessionId 到 folderPath 的映射。这些数据在应用重启后依然保留,不依赖于核心工作区模型。
非破坏性移除¶
移除文件夹不会删除任何会话或其日志文件。被移除文件夹内的会话会自动返回到收件箱('')。
管理界面¶
插件在「Session Folders」设置页面中提供了文件夹管理能力:
* 创建、重命名、删除文件夹。
* 将会话归档到指定文件夹。
* 每个会话列表项中包含「Move to folder…」操作。
记忆作用域钩子¶
文件夹路径被设计为项目范围记忆命名空间的自然键。通过 assignment[sessionId] 可以获取会话所属的文件夹路径,从而实现基于目录的记忆隔离(例如 .harvis/memory)。
安装与启用¶
在终端中执行以下命令安装:
dsh plugin --profile web add github:Harzva/dsh-session-folders
安装后,插件会自动加载其持久化注册表和客户端界面组件。
典型用法¶
- 自动归档:会话可以根据当前工作目录(cwd)自动归入对应的文件夹。
- 手动移动:在会话列表的操作菜单中选择「Move to folder…」,将其移动到任意其他文件夹。
- 项目记忆隔离:在编写代码或处理任务时,利用
assignment[sessionId]获取的文件夹路径作为上下文,实现不同项目会话记忆的物理隔离。
注意事项¶
- 侧边栏限制:当前版本不提供侧边栏的「group by folder」树状视图。
- 架构原因:DSH 的
sidebar.workspaces区域负责会话列表,并不提供添加文件夹树的内嵌插槽。因此,分组视图需要通过核心插槽补丁或其他插件来实现,本插件仅负责文件夹注册表与 UI 管理部分。 - 记忆键值:文件夹路径是构建项目级记忆命名空间的天然键值,这一点在集成其他依赖项目记忆的插件时需要注意。
总结¶
该插件通过持久化注册表和记忆作用域钩子,为 DSH 会话提供了基础的文件管理能力。它适合需要结构化组织会话和项目记忆的开发者。完整源码与文档可参考 GitHub 仓库。