dsh-purge-archived:把 DeepSeek Harness 里的已归档对话彻底删掉

前言

DeepSeek Harness 的归档操作只打一个标记,不通删文件。@deepseek-ai/dsh-session-persistence-jsonl 自己的文档写着:日志会在 root 下不断累积,直到被外部删除,该接缝没有删除 API;@deepseek-ai/dsh-client-ui-workspace 也把「No Session deletion」列为已知限制。结果是归档过的对话越多,磁盘上的会话日志越积越厚。如果你在按 DSH「一切皆插件」的思路补这块能力,下面介绍 trimine/dsh-purge-archived——一个把归档会话的日志、投影缓存、归档标记和工作区成员记录一并清除的插件。

这是什么

维护者 trimine,分类 admin-security,包版本 1.0.1,许可证 MIT。仓库是纯 JavaScript 实现,index.js 是 Host 半(Cordis 插件),client.js 是浏览器模块,cordis.patch.yml 负责插入插件行,locale/*.json 提供插件管理器的显示元数据。

它补的是 DSH 缺失的那一个操作:归档之后真正把会话从磁盘上拿走,而不是让它继续占空间。

核心功能

这些能力都来自插件清单与 README,已核对。

  • 永久删除…:已归档会话「…」菜单末尾出现一行红色操作,点开有二次确认对话框。
  • 清理已归档对话:侧边栏新增一个一级面板,与「插件」「自动化任务」同级,列出每个已归档对话的标题、占用大小和最近活动时间。
  • 批量删除:勾选任意条目,或全选后一次删除。
  • 无效条目清理:日志文件被手动删掉的对话,归档标记和工作区成员记录仍会残留,这类条目在面板里显示为「日志已丢失」,可一键清掉。
  • 界面中英双语,样式跟随主题 token,对话框可用键盘操作。

一次删除会移除什么

下面四类产物是一次 purge 的清除范围,路径按 README 原文列出:

内容 位置
会话日志(全部格式代) <DSH_HOME>/sessions/<项目>/<sessionId>/
投影缓存检查点 <DSH_HOME>/storages/session_projcache/sessions/<sessionId>.json
归档标记 注册表中持久化的归档集合
工作区成员记录 各 Workspace 的 sessionIds

已连接的客户端通过标准的 api-session/removed 通知立即移除该行,不需要刷新页面。

安全边界也写在 README 里:只接受两类条目——在持久化归档集合中的 id,或者磁盘上已无日志且不是活会话的 id。普通、未归档、日志仍在的对话一律拒绝。两个 HTTP 路由只接受同源的 JSON POST。

安装与启用

插件页安装:侧边栏 插件 → 添加插件 → 输入 dsh-purge-archived → 安装。

dsh 命令行安装:

dsh plugin --profile desktop add dsh-purge-archived

从本地 checkout 安装,直接把插件管理器指向目录:

dsh plugin --profile desktop add /absolute/path/to/dsh-purge-archived

本地目录安装是 link 方式,源目录不能删除或移动。另外,已安装插件升级到新版本后,需要重启一次 DeepSeek Harness 让 Host 半加载新模块,然后刷新页面。

典型用法

三种路径,按场景选。

1、单个对话。先把侧边栏「视图选项」切到 全部对话 或 仅归档 让归档行可见,再打开该行「…」菜单,选 永久删除…。

2、批量。点侧边栏面板列表里的 清理已归档对话,勾选条目或 全选,再点 删除所选。

3、无效条目。同一页面里标记为「日志已丢失」的条目,用 清理全部 N 个无效条目 一次清掉。

适用场景与注意

适合自己管理 DSH_HOME、归档对话已经明显占空间的人,也适合在测试环境里反复跑会话、需要定期清场的人。

几点提醒:

  • 删除操作以当前 dsh 进程的权限运行。装之前先看一遍源码与许可证(MIT),确认删除路径与自己的目录约定一致。
  • index.js 导出了文件系统层 removeSessionArtifacts(),可以针对临时 DSH 目录单独测试,不必运行 Host。这既是审查入口,也是验证行为的地方。
  • 兼容性标注为 DeepSeek Harness 0.2.1-rc.5(V4 会话日志格式,Windows 桌面端)。删除逻辑与日志格式无关:它整目录删除,而不是写死日志文件名,后续格式代仍能正常工作。依赖 @deepseek-ai/dsh-client-ui-workspace 客户端包和 Host 侧的 Workspace 注册表。
  • 发布的包名和 scope 由维护者决定,仓库的清单里 author 等字段仍是 OWNER 占位符状态,安装前建议核对 package.json 实际内容。

结尾

这个插件的价值很窄但实在:DSH 的归档只做标记,它把标记背后的东西真正拿走。目录页在 https://www.skillhub.cn/plugins/trimine/dsh-purge-archived ,源码在 https://github.com/trimine/dsh-purge-archived ,README 里有完整的删除范围和安全说明。

羽毛球分组比赛记分
小程序二维码

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

小夜