dsh-session-cleanup:DSH 侧边栏会话清理与可撤销回收站

前言

在 DeepSeek Harness(DSH)里长期跑 Agent,会话历史、投影缓存和归档条目会持续落在本机 $DSH_HOME 下。框架设计上移除 Workspace 注册项并不会删掉会话日志,因此没有内置的「删会话、腾磁盘」出口,空间只会慢慢堆高。

社区插件 mkt-agents/dsh-session-cleanup 在 Web 端侧边栏补上一套会话治理面板:按体积查看、归档、移入可撤销回收站,以及清理孤立缓存与失效归档。下面介绍它的定位、能力与安装用法。

这是什么

dsh-session-cleanup(目录名 mkt-agents/dsh-session-cleanup)是 mkt-agents 维护的 DSH Web 客户端插件,分类为客户端;在 harness 左侧栏注册「会话清理」入口,Host 半边在同源 Web 服务上提供状态与操作路由。

一句话:把 DSH 缺失的会话删除与空间清理补上,并坚持删除先移动、可还原;只有显式 purge 才真正删字节。

核心功能

资料中与 README 一致的能力如下。

会话列表与排序

  • 会话按工作区分组,展示字节体积、最后更新时间,以及运行中/活跃状态。
  • 支持按体积、更新时间、标题排序,并可搜索标题、会话 id、路径,便于先找最占空间的项。

归档与取消归档

  • 调用 workspaceRegistry.archiveSession,归档后从活动列表移出,不改动磁盘上的会话字节。
  • 支持取消归档,回到活动列表。

可撤销删除与回收站

  • 删除:将会话目录及其投影缓存文件移动到 $DSH_HOME/backups/session-cleanup-<时间戳>/,并写入 manifest.json;并非就地销毁。
  • 还原:可按整批撤销一次删除,也可只还原其中一条会话。
  • purge:唯一真正删除字节的操作,需按批次或按单条显式发起。
  • 清空回收站:一次性处理所有 session-cleanup-* 批次。

一次删除动作对应一个回收站批次,批量删除可作为整体撤销。

维护型清理

  • 清理孤立缓存:删除 session_projcache/sessions/*.json 中会话日志已不存在的文件,并报告释放字节。
  • 清理失效归档:移除会话日志已消失的 archive/pin 条目。

安全与运行约束

插件以当前 DSH 进程权限读写本机目录。README 中的安全模型要点:

约束 行为
会话仍被 live Agent 持有 跳过,不移动(仍持有日志写入句柄)
移动范围 仅 $DSH_HOME/sessions 下内容
删除范围 仅 $DSH_HOME/backups 下内容
部分失败 回滚已移动项,丢弃半成品批次
Host 路由 仅同源;GET/POST 校验 sec-fetch-site / Origin

安装前建议浏览 GitHub 仓库 源码与 MIT 许可证。运行要求 Node.js 22 或更高(见仓库 package.json 的 engines)。

安装与启用

推荐用一条命令从 GitHub 装入指定 profile(默认示例为 web):

dsh plugin --profile web add https://github.com/mkt-agents/dsh-session-cleanup

将 --profile 换成你实际使用的 profile 名。命令会把插件写入该 profile 的 dsh.profile.bundles。装完后重启 harness,左侧栏应出现「会话清理」。

默认零配置:无需 API 密钥、环境变量或模型账号。cordis.patch.yml 中通常只需 inject: [webServer] 与空的 config: {}。

DSH_HOME 默认为 Windows 下 %USERPROFILE%\.dsh、其他系统 $HOME/.dsh;回收站路径为 $DSH_HOME/backups/session-cleanup-<YYYYMMDD-HHmmss-mmm>/,同级有 manifest.json。

典型用法

经过上面的安装与重启,可按 README 中的步骤操作:

  1. 打开 DSH Web 界面,从左侧栏进入 会话清理。
  2. 在面板中按工作区浏览会话,用排序与搜索定位目标。
  3. 勾选会话后:
    - 归档:移出活动列表,字节不动。
    - 删除:二次确认后进入回收站;需要时用整批或单条 还原。
  4. 在回收站确认无误后使用 purge 或 清空回收站 释放空间。
  5. 使用顶部 清理失效归档、清理孤立缓存;孤立缓存清理会报告释放的字节数。

若某条会话删不掉,多半是仍被 live Agent 占用;切换到其他会话后再试。

Host 侧仅在同源下可用,例如:

方法 路径 用途
GET /dsh-session-cleanup/state 工作区、归档/固定、会话、回收站与统计
POST /dsh-session-cleanup/action archive、unarchive、delete、restore、purge、pruneArchived、pruneOrphanCache、emptyTrash

action 请求体形如 { op, sessionIds?, batch?, labels? };restore 与 purge 须带 batch。

适用场景与注意

适合谁:长期在本地 DSH Web 端积累大量会话、需要按体积治理磁盘、又希望误删可回滚的开发者。

不适合:非 Web 端 harness;Client 仅注册在 main 与 sidebar.panellist 等 Web slot。

空间预期:回收站在 purge 前仍占用与原会话相近的磁盘,这是可撤销设计的代价。

DSH 生态强调「一切皆插件」;SkillHub 目录页 与 dsh.market 列表 为社区收录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-session-cleanup 补齐 DSH 会话删除与缓存/归档维护,用回收站批次与 manifest 把「删」做成可逆流程。查阅详情与 issue 请到 GitHub:mkt-agents/dsh-session-cleanup,目录介绍见 SkillHub 插件页。

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

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

Xiaoye