Session Folders: Assign a separate working directory for each DSH conversation.

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye