前言¶
在 DeepSeek Harness (DSH) 桌面版中,会话列表会随着使用逐渐膨胀。手动删除会话时,宿主留下的工作区记账、置顶标记、投影缓存行(含备份文件)往往无法同步清理,导致侧栏或归档列表中出现“脏数据”。dsh-session-cleaner 专注于解决这一问题,它将侧栏的“删除”操作升级为“移入回收站”,支持搜索、恢复与彻底删除,确保删除过程可控、可逆。
功能概览¶
该插件由 jackxiao17 维护,目前开源,采用 MIT 许可证。它安装在 DSH 桌面版客户端,不改变宿主核心逻辑,仅通过插件接口介入会话生命周期管理。
核心能力集中在以下几个方面:
1. 回收站机制:删除会话时,文件被整体 rename 到回收站目录(同盘瞬时操作,不复制),保留了 30 天的回滚窗口。
2. 痕迹清理:删除时同步摘掉工作区记账槽位、置顶与归档标记,清掉投影缓存行(含宿主留下的 .bak 备份文件)。
3. 子会话处理:对于带有子代理的会话,插件会整棵树一起处理,确保父子关系在删除/恢复流程中不断裂。
4. 彻底删除:在回收站中点击彻底删除,会额外清理绑定该会话的定时任务与空掉的工程目录。
5. 查看与搜索:回收站面板支持按标题/正文搜索、工作区筛选、按时间/大小/轮次排序;点击会话可查看完整的对话记录(Markdown 渲染,超长回复中间省略)。
安装与启用¶
安装过程需要修改 DSH 的桌面版配置目录。请确保当前 DSH 版本为 0.2.1-rc.2(其他版本可能存在兼容性问题)。
- 将插件文件夹(
dsh-session-cleaner)拷贝到%DSH_HOME%\profiles\desktop\local\dsh-session-cleaner。 - 编辑
%DSH_HOME%\profiles\desktop\package.json:- 在
dependencies中添加:"dsh-session-cleaner": "file:./local/dsh-session-cleaner" - 在
dsh.profile.bundles数组中添加:"dsh-session-cleaner"
- 在
- 在该目录运行 DSH 自带的 pnpm 安装命令:
node "%DSH_HOME%\dsh-runtimes\dsh-primary-runtime\dependencies\pnpm\bin\pnpm.cjs" install -C %DSH_HOME%\profiles\desktop
- 重启 DSH。在侧栏会话列表的
···菜单中,会出现红色的删除选项;侧栏底部会出现会话回收站入口。
使用方法¶
操作流程分为“删除”与“回收站管理”两部分。
删除会话¶
在侧栏点击会话的 ··· 菜单,选择 删除:
* 会话被直接移入回收站,顶部提示“✓ 会话已删除至回收站”。
* 对话中正在进行的回答会被结束(取消当前轮 + 拆掉 agent),然后再移入回收站。
* 如果该会话有子会话,子会话也会一并搬入回收站。
回收站管理¶
点击侧栏底部的 会话回收站 按钮:
* 搜索与筛选:支持标题实时过滤,勾选“搜正文”可搜索提问与回复内容。支持按工作区筛选、按删除时间/标题/大小/轮次排序。
* 恢复:勾选会话后点击恢复,目录搬回原位、记账挂回原工作区并回到原来的槽位、投影缓存行原样还原。如果删除前是归档状态,恢复后会回到归档列表。
* 彻底删除:勾选会话后点击彻底删除,会清掉绑定该会话的定时任务与空掉的工程目录。
* 查看日志:点击会话可查看逐轮对话记录。
注意事项¶
- 宿主契约依赖:插件依赖 DSH v4 会话日志格式、zstd 帧布局、v7
session_projcache存储域、workspaceRegistry/schedule/storageDomain/webServer服务以及前端 slot 与__ModuleLoader__。这些契约已与 0.2.1-rc.2 源码逐一核对。 - 兼容性承诺:向下兼容未逐一验证,不做承诺。在旧版本上,功能可能会弱化(例如槽位无法还原导致恢复到顶部),但不会导致数据损坏或错误删除。
- 版本限制:0.1.x 未验证,不建议直接使用。大版本升级后插件可能失灵(表现为菜单项消失),但不会伤及会话数据。
- 保留期与清理:回收站默认保留 30 天,启动时清一次,之后每 6 小时清一次。定时任务在会话进回收站期间不会被清掉(宿主不支持原样重建任务)。
- 数据一致性:恢复不保证与删除前逐字节相同的地方;同 id 有两份日志目录时会拒绝操作;插件具备崩溃安全机制(快照先写、文件后搬)。
总结¶
dsh-session-cleaner 提供了可控的会话生命周期管理。对于需要频繁清理会话、维护整洁侧栏或需要彻底清理宿主痕迹的开发者,这是一个实用的工具。插件源码与文档可参考:GitHub。