前言¶
在 DeepSeek Harness(DSH)里,默认工作区往往被多轮「临时对话」共用:上一轮留下的脚本、下载或测试文件,容易让下一轮对话误读路径、误改文件。常见做法是再建侧边栏工作区或手动换目录,但会动到工作区列表与历史归属。Session Folders(插件包名 dsh-per-session-folder)由社区维护者 hhuapen 发布,分类为工作流;它在文件系统层面为每次新会话单独建目录,并把目录名与会话标题同步,同时不新增工作区条目、也不改写历史会话的工作区归属。
这是什么¶
Session Folders 是 DSH 的 host 与 client 插件,面向默认工作区里「临时或未分类」的对话。每在默认工作区开启一个新的顶层会话,插件可为其分配独立工作目录;会话标题变化时,对应文件夹会重命名。相对路径下的读写会落在该目录内;显式写入其他绝对路径的文件不会被插件移动或拦截。
核心功能¶
下面能力均来自插件 README 与 package.json 说明,当前版本为 0.1.1,许可证 MIT。
- 每个新对话在默认工作区下对应一个文件夹;首条用户消息可用于生成可读文件夹名。
- 会话标题(生成或编辑后)变化时,文件夹同步重命名;重名时自动追加
-2、-3等后缀。 - 可在插件详情页用 Windows 原生文件夹选择器指定父目录,并校验所选目录是否可访问;不可用时对话仍继续,回退到默认工作区,不阻塞聊天。
- 支持「打开会话即建目录」或「等到首条消息再建目录」,避免空文件夹。
- DSH 重启后,通过目录内标记文件
.dsh-per-session-folder.json恢复文件夹与标题同步;旧开发期名称留下的 legacy 标记会被自动接管。 - 保持 DSH 的 Open In 与本地文件相关操作指向当前会话的有效工作目录(通过
ctx.workingDirectory.set持久化并由 DSH 重放;client 插件在接口可用时同步到会话 UI)。 - 作用范围:仅影响「原始工作目录为默认工作区」的新顶层会话;历史会话、子 agent 会话、其他工作区内的会话不受影响。会话头仍显示原工作区路径,仅有效工作目录被切换。
配置项(可在插件配置或详情页对应操作中使用):
| Key | 默认值 | 说明 |
|---|---|---|
enabled |
true |
是否启用按会话分目录 |
root |
'' |
父目录;空则使用默认工作区 |
creationMode |
immediate |
immediate 或 first-message |
workspacePath |
'' |
高级场景下的可选工作区覆盖 |
maxNameChars |
60 |
文件夹名最大长度 |
详情页还提供:Choose folder…(选父目录)、Use default workspace(清除自定义父目录)、Create on open、Create on first message。
已知限制:仅隔离相对当前工作目录解析的操作;修改父目录只影响之后的新会话;插件不会自动删除或归档文件夹;文件夹重命名后,模型上下文中已出现的旧路径可能失效,后续步骤会收到工作目录变更通知。
安装与启用¶
环境要求:DSH >=0.2.1-rc.3 <0.3.0(见 README 与 package.json 的 engines.dsh)。
官方安装方式(npm 包已发布时使用):
dsh plugin add dsh-per-session-folder
在 npm 包尚未发布时,README 给出的 GitHub 安装方式为:
dsh plugin add github:hhuapen/dsh-per-session-folder
本地开发目录安装示例:
dsh plugin add C:\path\to\dsh-per-session-folder
安装后需重启 DSH。
启用与配置:打开 Plugins → Installed plugins → Session Folders,在插件详情页完成父目录选择与创建时机选项。插件以当前 DSH 进程权限运行;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。
典型用法¶
1、安装并重启 DSH 后,进入 Session Folders 插件设置,用 Choose folder… 指定存放各会话子目录的父路径;若希望仍用默认工作区作为父目录,使用 Use default workspace。
2、在 Create on open 与 Create on first message 之间选择:需要一开会话就有目录选前者;希望避免空目录选后者。
3、在默认工作区新建顶层对话并发送消息。插件会创建以会话标题(或首条消息衍生名)命名的子文件夹,后续相对路径的文件操作落在该目录。需要在外部打开目录时,使用 DSH 自带的 Open In 等控件,目标为当前会话的有效目录。
4、编辑会话标题后,观察对应文件夹是否随标题重命名;若与已有文件夹冲突,名称会带 -2 等后缀。
适用场景与注意¶
适合在默认工作区频繁开「草稿对话」、又不想为每次聊天单独建侧边栏工作区的开发者。子 agent、历史会话、非默认工作区会话不会被插件改写目录策略。
DSH 社区插件目录位于独立站点 skillhub.cn,与 DeepSeek / 幻方无官方从属关系;安装与配置以仓库 README 为准。修改 root 不会迁移已有会话文件夹;长期积累的会话目录需自行管理磁盘空间。
结尾¶
Session Folders 用「每会话一目录 + 标题同步命名」隔离临时文件,同时保留 DSH 现有工作区与历史模型。进一步了解与 issue 反馈见插件目录页与 GitHub:
- 目录页:https://www.skillhub.cn/plugins/hhuapen/dsh-per-session-folder
- 仓库:https://github.com/hhuapen/dsh-per-session-folder