dsh-session-folders:每个 DSH 会话一个时间文件夹

前言

在 DeepSeek Harness(DSH)里开多个会话时,模型和工具往往直接把文件写到工作区根目录。几次会话下来,根目录会堆满脚本、配置和中间产物,很难分清哪次会话产出的、也不方便归档。常见做法是手动建子目录或事后整理,既占时间,又容易漏文件。

dsh-folders-per-session(社区仓库名 dsh-session-folders)按会话自动建带时间戳的文件夹,并在会话开头把工作目录切进去,让后续产物默认落在该目录里。下面介绍它是什么、怎么装、怎么用,以及使用前要了解的边界。

这是什么

这是一款 DSH 工作流类插件,由 QAQ-Eleen 维护,采用 MIT 许可证;当前包版本为 0.1.1(package.json)。定位可以概括为:每个会话一个时间文件夹,产物不再堆在工作区根目录(README 中英文简介一致)。

插件不依赖官方未文档化的「创建时改 cwd」接口,而是通过 DSH 公开的 workingDirectory 服务在目录建好后切换会话工作目录,工具、终端与系统提示会指向新目录;侧栏里会话仍归属原来的工作区根——这是刻意设计,以便 DSH 升级时不易因非公开补丁而失效。

安装后可在 DSH 插件设置里看到 session-folders 这一行,配置项在该处修改;关闭 enabled 即可一键停用,无需卸载。

目录结构示例

README 用一棵树说明效果(路径仅为示例):

D:\AI\DSHwenjian\
├─ 26-11-07_1930\          ← 会话一
│  ├─ _会话说明.md
│  └─ ...产物
├─ 26-11-07_2015\          ← 会话二
└─ AGENTS.md

每个会话对应一个由插件生成的目录名(默认格式 yy-MM-dd_HHmm),不靠模型拼目录名,可减少拼错与重名问题。

核心功能

自动建夹与会话说明

  • 模型侧工具名为 session_folder;人在对话里可用命令 /folder(别名 /sf)。
  • 执行后会为本会话创建时间文件夹并进入该目录;若开启 writeSessionNote,会写入 _会话说明.md(已存在则跳过,不覆盖手写内容)。
  • 系统提示会在每个会话开头引导模型先调用 session_folder,之后产物应落在工具返回的目录中。

配置项

在插件设置中调整(字段以 README 为准):

字段 默认 说明
enabled true 一键开关;关掉后不注册工具、命令与提示
root 空 = 会话工作区目录 时间文件夹建在哪;支持 ~ 和相对路径
format yy-MM-dd_HHmm 目录名格式,支持 yyyy yy MM dd HH mm ss
timezone 空 = 跟随系统 IANA 时区,例如 Asia/Shanghai
writeSessionNote true 是否自动写 _会话说明.md
collisionSuffix -2 同分钟重名时的后缀,递增到 -3、-4…

运行环境

package.json 中声明的 DSH 引擎范围为 >=0.2.1-rc.3 <0.3.0;开发依赖 @deepseek-ai/schemastery 用于类型与校验。

安装与启用

安装命令须使用 README 原文中的插件包名 dsh-folders-per-session,并按你使用的 DSH 形态选择 profile:

# 桌面版
dsh plugin --profile desktop add dsh-folders-per-session

# Web 版
dsh plugin --profile web add dsh-folders-per-session

装好后在插件设置中确认 session-folders 已出现;默认 enabled 为 true。若暂不需要,将 enabled 设为 false 即可,无需卸载。

说明:DSH 生态采用「一切皆插件」思路;社区目录站点(如 SkillHub)与 DeepSeek、幻方无官方从属关系,本文安装方式以插件 README 为准。

典型用法

命令行示例如下(README 原文):

/folder            # 建本会话的时间文件夹并进入,顺带写 _会话说明.md
/folder 整理工作区  # 同一个动作,标签写进会话说明

典型流程可以是:新开会话 → 模型按提示调用 session_folder 或你手动执行 /folder → 在该目录下继续让模型写文件、跑终端 → 下次会话再得到新的时间文件夹。

同分钟若目录重名,插件会按 collisionSuffix 规则追加 -2、-3 等后缀。

适用场景与注意

适合谁: 经常在同一工作区开多场 DSH 会话、希望按会话隔离产物、又愿意接受「工作目录切换但侧栏仍显示原工作区根」行为的开发者。

务必注意:

  1. 权限与安全:插件随当前 DSH 进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全策略。
  2. 不移动历史文件:本插件只建新目录、写说明;不会自动把工作区根目录里已有文件挪进旧会话夹(README 写明整理历史文件不在本版范围内)。
  3. 不改 header.cwd:工作目录通过公开服务切换;每次切换时对话里可能出现 DSH 自身的「工作目录已变更」系统消息。
  4. 版本兼容:请使用满足 engines.dsh 范围的 DSH 版本,避免与插件声明不匹配。

开发与参考

维护者在仓库中给出的开发命令(供查阅插件实现,非终端用户必需):

npm install      # 只需要 @deepseek-ai/schemastery 做类型/校验
npm test         # 纯 node:test,无额外测试框架

主要模块:lib/index.js(入口:工具、命令、系统提示)、lib/naming.js(目录名与重名)、lib/note.js(_会话说明.md 模板)。

结尾

若你希望用最小改动把「一场会话一份文件夹」固定进日常流程,可以在安装 dsh-folders-per-session 后依赖默认配置,用 /folder 或模型工具 session_folder 开席即可;需要集中存放或自定义时区、命名格式时,再改插件设置里的 root、format、timezone 等字段。

羽毛球分组比赛记分
小程序二维码

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

小夜