前言¶
DeepSeek Harness(DSH)默认会把会话归档,但不会真正从磁盘上删掉对话。工作区里试过的分支、过期任务、误建的会话会一直占着列表和目录,只能归档、不能「清掉又后悔」。若你希望在本地 Harness 环境里做一次删除、又保留几天内反悔的余地,就需要在归档之外再叠一层回收站语义。
下面介绍社区插件 dsh-conversation-trash(维护者 ASALULU,SkillHub 分类:记忆)。它把会话日志、列表投影缓存与工作区归属移入 30 天回收站,支持 Toast 撤销、回收站页恢复与永久清除,而不改动 DSH 核心的归档行为。
这是什么¶
dsh-conversation-trash 是 DSH 的宿主 + Web 客户端插件:在会话行提供删除入口,把指定 Session 的日志与相关缓存迁到本地回收站,并从工作区注册表里解除关联。删除后列表立即不再展示该会话;误删可在短时间内撤销,或在 Plugins → 对话回收站 中恢复或彻底删除。
- 仓库:https://github.com/ASALULU/dsh-conversation-trash
- 目录页:https://www.skillhub.cn/plugins/ASALULU/dsh-conversation-trash
- 当前包版本(
package.json):0.4.0 - 许可证:MIT
SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;安装前请自行查看源码与许可证。
核心功能¶
依据 README 与 package.json,插件已核实能力如下。
- 官方 Slot 集成:会话行悬停垃圾桶按钮,以及行尾「…」菜单中的「删除对话」;不注入 DOM、不改原生菜单结构。
- 删除与撤销:确认后日志移入回收站、列表行消失;Toast 提供 撤销,可立即恢复。
- 回收站页面:Plugins → 对话回收站,可查看标题、删除时间、占用空间,并执行恢复、彻底删除、清空回收站(后两者为两段式确认)。
- 30 天自动清扫:到期后自动清理;已删会话的日志不再参与列表与搜索。
- 界面语言:中文 / English,跟随 DSH 语言设置。
会移动什么、什么不动¶
删除时插件主要处理以下内容(路径均相对 <DSH_HOME>):
| 对象 | 处理 |
|---|---|
sessions/<项目目录>/<session-id>/ |
移入回收站;失败则保持原样 |
storages/session_projcache/sessions/<session-id>.json |
尽力移入;失败则留在原处,不阻塞删除 |
workspace.json 的成员 / 置顶 / 归档 |
通过 Workspace registry 解除 |
attachments/** |
不动(内容寻址、跨会话共享) |
| 子代理会话 | 不动(独立 session 目录) |
回收站目录形如:plugin-data/session-delete/trash/<时间戳>--<session-id>--<随机后缀>/,内含 manifest.json、log/、projection.json。
安装与启用¶
要求:DSH >= 0.2.2-rc.1 且 < 0.3.0,Node >= 22.15.0。
在 DSH 内打开 Plugins → Add plugin,填写插件名 dsh-conversation-trash;或使用 CLI(profile 请换成你的实际配置名,例如 web):
dsh plugin --profile web add dsh-conversation-trash
安装后需要重启 DSH,宿主在启动时加载插件。桌面端建议在应用内 Plugins 页面安装。
典型用法¶
- 在会话列表中,悬停会话行点击垃圾桶,或打开行尾「…」→ 删除对话。
- 确认后内容进入回收站,列表中该行消失;若刚误删,在 Toast 上点 撤销。
- 需要批量管理时,打开 Plugins → 对话回收站:对单条 恢复 或 彻底删除,或 清空回收站。
若删除返回需先重启的提示(活会话仍在内存中),应先退出并重启 DSH,再执行删除;README 说明这是为了避免「列表里没了、内容仍能从内存打开」的不一致。
宿主侧还提供 POST /api/session-delete,通过 body 中的 action(delete、restore、list-trash、purge、purge-all)调用;路由为 owner-only,一般由 UI 使用,扩展集成时可参阅仓库 README。
安全模型与已知限制¶
安全(README 摘要):插件不执行 shell、不发起网络、不使用 eval;路径经 resolve 与根目录包含检查;HTTP 路由仅 owner 可访问;活会话拒绝删除;日志先移动,缓存移动失败不会清空已建立的回收站条目。
使用上需注意:
- 插件在当前 DSH 进程权限下读写本地文件;安装前应阅读源码与 MIT 许可证,确认符合你的环境策略。
- 打开过的会话需重启 DSH 后才能删除(
live状态)。 - 附件、子代理会话不随父会话删除。
- 回收站内容保留约 30 天;若需立即释放磁盘,请在回收站页「彻底删除」。
- 多进程:
workspace.json无跨进程写锁,删除过程中避免在另一个 DSH 进程里操作同一工作区。 - DSH 大版本升级若改变磁盘布局,删除可能返回诊断而非静默破坏;升级前建议在测试 profile 验证。
结尾¶
DSH 生态强调「一切皆插件」。dsh-conversation-trash 在不动核心归档的前提下,补上了「可撤销删除 + 30 天回收站」这一层本地治理能力,适合需要定期清理会话、又希望保留误删缓冲的 Harness 用户。
- 目录页:https://www.skillhub.cn/plugins/ASALULU/dsh-conversation-trash
- GitHub:https://github.com/ASALULU/dsh-conversation-trash