前言¶
DeepSeek Harness(DSH)侧栏里,会话可以归档,但没有「删除」。若真要腾出磁盘空间,只能自己去 ~/.dsh/sessions/<工作区>/<uuid>/ 删目录,再手动改 workspace.json、清理投影缓存。任一步漏掉,侧栏就可能留下点不开的空壳会话。
社区插件 dsh-session-archive-delete(维护者 device1999,分类:记忆)把这条链路做成可确认的流水线:可先完整备份到本地、逐文件校验通过后再删,也可在明确风险下彻底删除。包名 @device1999/dsh-session-archive-delete,当前资料中的版本为 0.1.1,MIT 许可证;GitHub 仓库 device1999/dsh-session-archive-delete 星标为 1。目录页:SkillHub 插件页。
这是什么¶
本插件通过 Cordis 补丁扩展 DSH 客户端:在侧栏任意会话的「…」菜单最下方增加删除相关选项。定位是「dsh session delete」——在 DSH 原生只有归档的前提下,提供 备份后删除 或 彻底删除,并处理子代理会话、元数据与缓存,避免手工删目录时账本不一致。
核心功能¶
下面介绍 README 中已列出的能力,均可在安装后于界面或设置中验证。
| 能力 | 说明 |
|---|---|
| 备份删除 | 将会话目录、缓存与元数据快照复制到指定位置,校验通过后再删除原件 |
| 彻底删除 | 不备份,直接删除(可与备份删除并存或只显示其一) |
| 子代理会话 | 自动找出该会话派生的子代理,一并备份或删除 |
| 自定义备份位置 | 系统文件夹对话框或手输路径;支持四种备份文件夹命名规则 |
| 路径校验 | 无效路径当场提示,不会写入设置 |
| 一键恢复说明 | 每个备份目录含 RESTORE.txt,按步骤可复制回 DSH 数据目录 |
安全相关行为(资料原文):复制后逐文件比对大小与数量,不一致则中止;删前先从 workspace.json 移除引用并落盘;删后对目录删除结果复查;会话目录必须在 ~/.dsh/sessions 下且目录名与会话 id 一致;若删的是当前运行中的会话,会先取消当前轮次再删。
流水线可概括为:
确认 → 复制会话目录 + 缓存 + 元数据快照 → 逐文件校验 → 删除原件 → 清理账本
任何一步失败都会中止,原会话保持完好。
安装与启用¶
DSH 生态里插件通常通过包名或 profile 安装;以下命令均来自仓库 README,请勿自行拼接未在文档中出现的 github:owner/repo 形式。
方式一:DSH 界面(推荐)
左侧栏 插件 → 右上角 添加插件 → 输入包名:
@device1999/dsh-session-archive-delete
装完后重启 DSH。
方式二:命令行
dsh plugin --profile <profile> add @device1999/dsh-session-archive-delete
<profile> 一般为 desktop 或 web,可在 ~/.dsh/profiles/ 下查看。
系统要求(资料原文):DSH 0.2.x(Web / 桌面客户端);Windows / macOS / Linux;Node 引擎要求 ^20.0.0 || >=22.0.0。Windows 上系统文件夹对话框依赖 PowerShell 7,无 pwsh 时回退到页面内目录浏览。
卸载
dsh plugin --profile <profile> remove dsh-session-archive-delete
重启 DSH;已生成的备份文件夹不会随卸载删除,需自行清理。
典型用法¶
删除一个会话¶
- 侧栏会话行点「…」
- 选「备份删除」或「彻底删除」
- 在确认框核对会话名、ID 和备份路径
- 点「确认」
删除成功后侧栏会刷新;若删的是当前会话,会自动跳到下一个。
设置¶
打开 设置 → 备份删除:
| 设置项 | 选项 |
|---|---|
| 删除模式 | 两个菜单项同时显示 / 只显示「备份删除」/ 只显示「彻底删除」 |
| 备份位置 | 选择文件夹或编辑地址栏;留空则走默认规则 |
| 备份文件夹命名 | 日期+主题 / ID 前八位+主题 / 纯主题 / 前八位+主题+日期 |
设置保存在 ~/.dsh/dsh-session-archive-delete.json。
默认备份位置优先级(资料原文):
- 设置里填写的路径
- 环境变量
DSH_ARCHIVE_ROOT - 插件配置
workspaceRoot - 从会话记录推断使用最多的工作区目录
- 均不可得时:
<用户主目录>/DSH-归档会话
备份位置不能设在 ~/.dsh 内部,否则 DSH 可能将其当作数据目录重新扫描。
备份目录结构¶
<备份位置>/<按命名规则生成的文件夹>/
sessions/<工作区目录>/<会话id>/ 会话原始文件
projcache/<会话id>.json 界面投影缓存
meta/workspace.json 删除前的元数据快照
meta/session_projcache.json
manifest.json 清单(含子代理列表等)
RESTORE.txt 恢复步骤
从备份恢复¶
按备份内 RESTORE.txt 操作,大意如下(删 DSH 前须完全退出):
- 将
sessions/<工作区>/<会话id>复制回~/.dsh/sessions/<工作区>/ - 将
projcache/<会话id>.json复制回~/.dsh/storages/session_projcache/sessions/ - 在
~/.dsh/storages/workspace.json中把会话 id 加回对应工作区的sessionIds - 启动 DSH
适用场景与注意¶
适合谁:长期用 DSH 做智能体或对话开发、会话数量多、归档仍占磁盘、又希望有可回滚删除路径的用户;需要在清理前留本地副本的团队或个人也适合用「备份删除」模式。
权限与信任:插件在当前 DSH 进程权限下读写 ~/.dsh 与会话文件。安装前建议阅读 GitHub 源码 与 MIT 许可证,确认行为符合你的安全策略。
已知限制(资料原文):默认备份位置推断依赖宿主 sessionQuery;子代理关系来自会话 header 的 parentSession,会话文件为 zstd 压缩,无法仅靠读盘解析;备份为完整复制,大会话占用相应空间。
社区目录站点 SkillHub 与 DeepSeek / 幻方无官方从属关系,插件来自社区维护者,非官方应用商店条目。
结尾¶
若你已经在用手动删 ~/.dsh/sessions 的方式腾空间,本插件把备份、校验、账本清理和子代理级联收成侧栏菜单里的一条链路,并留下可恢复的备份结构。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。