dsh-conversation-trash:为 DeepSeek Harness 补上可撤销的对话删除

前言

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,插件已核实能力如下。

  1. 官方 Slot 集成:会话行悬停垃圾桶按钮,以及行尾「…」菜单中的「删除对话」;不注入 DOM、不改原生菜单结构。
  2. 删除与撤销:确认后日志移入回收站、列表行消失;Toast 提供 撤销,可立即恢复。
  3. 回收站页面:Plugins → 对话回收站,可查看标题、删除时间、占用空间,并执行恢复、彻底删除、清空回收站(后两者为两段式确认)。
  4. 30 天自动清扫:到期后自动清理;已删会话的日志不再参与列表与搜索。
  5. 界面语言:中文 / 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 页面安装。

典型用法

  1. 在会话列表中,悬停会话行点击垃圾桶,或打开行尾「…」→ 删除对话。
  2. 确认后内容进入回收站,列表中该行消失;若刚误删,在 Toast 上点 撤销。
  3. 需要批量管理时,打开 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye