🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话产物目录 Tonywqs/dsh-session-folders

DeepSeek 客户端
Tonywqs27 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

为每个新会话自动创建带时间戳的独立产物目录

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Tonywqs/dsh-session-folders.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/11/05·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 27 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 3 处,展示前 3 条)
  • 读取本地文件
    index.js:95
    return (await stat(path)).isDirectory()
  • 写入本地文件
    index.js:219
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    index.js:230
    await mkdir(dir, { recursive: true })
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按会话创建时间戳目录
  • 注入产物目录规则
  • 可选硬隔离模式

每个 DSH 会话一个带时间戳的产物目录:会话留在原工作区,插件注入「产物目录」规则;可选硬隔离模式。为 DeepSeek Harness 会话按会话生成输出目录。

README

由 DeepSeek 最新模型翻译生成
dsh-session-folders 让每一个新会话都落在自己的工作目录里。 不同任务的文件不再混在同一个文件夹下 ——效果等同于 WorkBuddy 那种「一个对话一个时间戳目录」的结构。 它解决什么 DSH 的模型是 工作区 = 一个目录 = 会话的 cwd。同一个工作区里的所有会话共用同一个 cwd,所以「GitHub 限流插件」和「Minecraft 整合包工具」两个任务的文件会落在同一个 D:\AIWorkSpace\DSH\ 下。 本插件在宿主侧接管 session.create:当新会话要落在配置的根工作区里时,先建一个时间戳子目录、把它注册成独立工作区,再让会话在那个子目录里创建。 D:\AIWorkSpace\DSH\ <- 根工作区(你平时在这里点「新对话」) ├── 2026-10-08-13-05-00\ <- 会话 A 的全部文件 ├── 2026-10-08-14-20-11\ <- 会话 B 的全部文件 └── 2026-10-08-15-02-47\ <- 会话 C 的全部文件 侧边栏「视图选项 → 分组方式 → 按工作区树」时,这些子目录会嵌套显示在 DSH 之下。
展开完整文档(README 剩余 1 节)
dsh-session-folders

让每一个新会话都落在自己的工作目录里。 不同任务的文件不再混在同一个文件夹下 ——效果等同于 WorkBuddy 那种「一个对话一个时间戳目录」的结构。

它解决什么

DSH 的模型是 工作区 = 一个目录 = 会话的 cwd。同一个工作区里的所有会话共用同一个 cwd,所以「GitHub 限流插件」和「Minecraft 整合包工具」两个任务的文件会落在同一个 D:\AIWorkSpace\DSH\ 下。

本插件在宿主侧接管 session.create:当新会话要落在配置的根工作区里时,先建一个时间戳子目录、把它注册成独立工作区,再让会话在那个子目录里创建。

D:\AIWorkSpace\DSH\ <- 根工作区(你平时在这里点「新对话」)
├── 2026-10-08-13-05-00\ <- 会话 A 的全部文件
├── 2026-10-08-14-20-11\ <- 会话 B 的全部文件
└── 2026-10-08-15-02-47\ <- 会话 C 的全部文件

侧边栏「视图选项 → 分组方式 → 按工作区树」时,这些子目录会嵌套显示在 DSH 之下。

两种模式

| | in-place(默认) | workspace |
| 会话归属 | 留在原工作区(cwd 不变) | 迁到新目录(新工作区) |
| 侧边栏 | 不多任何层级,新会话与原会话同级 | 多出一层工作区分组 |
| 文件隔离 | 规则:系统提示词注入「本次对话产物目录」,agent 依此写入 | 强制:会话 cwd 就是那个目录 |
| 适用 | 想保持侧栏干净 | 想要文件系统级硬隔离(可用侧栏「单列表」视图隐藏分组) |

行为细节

| 情况 | 行为 |
| 在根工作区里新建会话 | 建 <root>/<YYYY-MM-DD-HH-mm-ss>/,注册成工作区,会话 cwd = 该目录 |
| 客户端侧的名称 | 先显示 placeholderTitle(默认「新会话」),不显示时间戳;会话标题(由首条消息生成)落地后自动把工作区改名成该标题 |
| 同一秒内再开一个 | 自动退到 …-2、…-3 |
| 会话已经在一个日期子目录里 | 不再套一层(只精确匹配根目录) |
| fork / 恢复已有会话 | 原样放行,继承来源会话的目录 |
| 其它工作区(例如 PackUp) | 完全不受影响 |
| 建目录或注册工作区失败 | 记一条 warn,然后按原请求放行 —— 永远不会挡住开会话 |

配置

cordis.patch.yml(装到 profile 后在 profile 的 patch 里):

- insert:
- id: session-folders
name: dsh-session-folders
config:
enabled: true
roots:
- 'D:\AIWorkSpace\DSH'
nameFormat: YYYY-MM-DD-HH-mm-ss
dryRun: false

| 配置 | 默认 | 说明 |
| enabled | true | 总开关 |
| roots | [] | 需要按会话分目录的根工作区(可多个)。为空时插件不发生活用并记一条 warn |
| nameFormat | YYYY-MM-DD-HH-mm-ss | 目录名格式,支持 YYYY MM DD HH mm ss |
| placeholderTitle | 新会话 | 客户端侧工作区的初始显示名(不要用时间戳) |
| followSessionTitle | true | 会话标题生成后自动同步改工作区名;false 则一直用 placeholderTitle |
| dryRun | false | 只记日志不落地,用于首次验证 |

安装

profile 名按你的环境:桌面版是 desktop,命令行版通常是 web
dsh plugin --profile desktop add github:Tonywqs/dsh-session-folders

装完完全重启 DSH

也可以用 DSH 内置的插件管理器:设置 → 插件 → 安装插件,仓库地址填 github:Tonywqs/dsh-session-folders。

手动安装(不走 dsh CLI)

1) 复制到 profile 的共享 node_modules copy-item -Recurse <本目录> "$env:USERPROFILE\.dsh\profiles\node_modules\dsh-session-folders"

2) 在 profile 的 cordis.patch.yml 追加 insert 条目(见上「配置」)

3) 重启 DSH

首次验证

先用 dryRun: true 重启一次,开一个新对话,然后看 %USERPROFILE%\.dsh\logs\desktop-next.log:

dsh-session-folders: active for D:\AIWorkSpace\DSH (format YYYY-MM-DD-HH-mm-ss, dry-run)
dsh-session-folders: [dry-run] would create D:\AIWorkSpace\DSH\2026-10-08-16-01-22

看到第二行说明接缝命中,再改回 dryRun: false 重启即可真正建目录。

已知限制

- 依赖宿主内部接缝 ctx.sessionController.commands.create;DSH 若改动这个结构,插件会在日志里记 warn 并自动失活(会话创建不受影响)。
- 目录名用本地时间,秒级;同一秒内连开多个会话会得到 -2/-3 后缀。
- 只改「新会话落在哪」,不迁移历史会话的 cwd,也不动已有文件。

卸载

dsh plugin --profile desktop remove dsh-session-folders

手动装的则删掉 profiles/node_modules/dsh-session-folders,并从 profile 的 cordis.patch.yml 移除那个 - insert: id: session-folders 块。已建出来的日期目录不会被删除。

in-place 模式的产物目录规则(v0.3.1)

插件会注册两处提示词贡献,内容都是「本次对话的产物目录 = <时间戳目录>」:

1. 系统提示词 section(session-folders:output-dir)——每个模型步骤都在;
2. 动态 runtime context(同名)——每轮以 user 角色快照刷新一次,更难被忽略。

两者共用变量 session_output_dir:不属于本插件的会话返回空串,空 section / 空 context 会被渲染阶段丢弃,所以其它工作区看不到这段话。

坑(已修):宿主对提示词变量名有强制约束 /^[a-z][a-z0-9_]*$/,大小写混写(例如 sessionFoldersOutputDir)会直接抛错。v0.3.0 因此整个插件加载失败;v0.3.1 改成 session_output_dir,并把提示词注册整段 try/catch、移到 create 包装之后——提示词出任何问题都不再影响建目录。
预览分享卡片长什么样 ↓Tonywqs/dsh-session-folders
分享 · DeepSeek Harness Hub
Tonywqs/dsh-session-folders

为每个新会话自动创建带时间戳的独立产物目录

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部