dsh-session-cleanup: Permanently Delete Session Data in DSH

前言

DeepSeek Harness(DSH)侧栏里可以把会话「归档」:列表里不再显示,但磁盘上的事件日志、投影缓存和工作区登记往往还在。长期本地开发或反复试跑智能体时,session.v4.jsonl.zstd 和 storages/workspace.json 里的 id 会不断累积,占用空间,也不利于按工作区梳理。内置归档没有真正的删除入口;dsh-session-cleanup 是社区插件,补这一块维护面板,并在会话菜单里提供「永久删除」确认流程。

这是什么

dsh-session-cleanup(GitHub:LucasCaleb-ggg/dsh-session-cleanup)由维护者 LucasCaleb-ggg 发布,MIT 许可证,当前 package 版本 1.0.0。定位是 DSH 的会话与工作区维护面板:列出各工作区下的会话(标题、id、体积、最后活动、是否归档 / 运行中 / 日志缺失),支持批量或从侧栏菜单一次性删掉事件日志、投影缓存以及 workspace.json 中的登记——而不是只隐藏侧栏行。

核心功能

下面介绍 README 中已说明的能力。

工作区与会话列表

  • 按 Workspace → sessions 展示每个会话的标题、id、大小、最后活动时间。
  • 状态包括 archived、running、log missing。
  • 已无工作区登记、但日志仍在磁盘上的会话,单独成组 Unregistered sessions,便于清理。

删除会话

  • 批量删除:勾选多个会话,确认一次即可;running 会话会被拒绝(仍有 turn、子智能体、job 或 schedule 时不能删),原因会在 UI 中显示。
  • 侧栏快捷入口:任意会话 … 菜单增加 Delete permanently…,弹出确认对话框,无需先打开维护面板。

删除每个会话时会移除三处数据(README 原文路径):

  1. $DSH_HOME/sessions/<workspace-key>/session-<id>/(事件日志目录)
  2. $DSH_HOME/storages/session_projcache/sessions/session-<id>.json(投影缓存)
  3. $DSH_HOME/storages/workspace.json 中的 sessionIds 与 archivedSessionIds

操作前须勾选 I understand this cannot be undone,未勾选前不会动任何文件。

删除过程通过 workspaceRegistry.detachSession / unarchiveSession 与 Host 内存表、workspace.json 保持一致,并发出 api-session/removed,侧栏会立即去掉该行,而不是重启前一直挂在「Ungrouped」下。

工作区

可删除工作区在 DSH 中的登记;可选同时删除磁盘上的工作区目录。对盘符根目录、用户主目录、DSH home、以及仍包含其他已注册工作区的目录会拒绝删除。

安全与已知限制

  • 会话 id 在构造路径前会做校验。
  • Attachments(.dsh/attachments)不会被删除——共享 blob 可能属于其他会话。
  • 已删会话不会级联删除其子智能体会话;若某标签页仍打开已删会话,该 tab 会指向已不存在的日志。

安装与启用

插件为纯 JavaScript bundle,无需构建;安装后会在 DSH profile 中注册 session-cleanup 入口。

从 GitHub 安装(命令来自仓库 README,将 OWNER 换为实际仓库所有者):

dsh plugin add https://github.com/LucasCaleb-ggg/dsh-session-cleanup

若本地已有仓库检出,也可指向目录:

dsh plugin add /absolute/path/to/this/directory

Requirements(README):DeepSeek Harness 0.2.x 且带 Web GUI;Host 需具备 webServer、connection、workspaceRegistry、agents 等服务。

典型用法

  1. 侧栏点击 Session cleanup 图标(位于 Plugin market 与 Schedules 之间)进入全页维护面板;或
  2. 在任意会话的 … 菜单中选择 Delete permanently…,在对话框中确认。

在面板中可勾选多个非运行中会话批量删除,或处理未登记会话组、工作区删除等操作。安装后具体文案以界面与 locale/*.json 为准。

适用场景与注意

适合长期在本地用 DSH 跑智能体、归档很多但仍想释放磁盘、或需要核对「归档 vs 日志是否还在」的开发者。

插件以当前 DSH 进程的用户权限读写 $DSH_HOME 下路径;安装前建议阅读 GitHub 源码 与 MIT 许可证,确认行为符合预期。DSH 生态强调「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-session-cleanup 把 DSH 里「只归档、不删盘」的缺口补上:同一套 UI 里查看工作区与会话状态,并在确认后永久移除日志、投影缓存与工作区登记。需要时可从目录页或 GitHub 安装,并按 README 的 Safety 一节理解运行中会话与附件等边界。

  • 目录页:https://www.skillhub.cn/plugins/LucasCaleb-ggg/dsh-session-cleanup
  • 仓库:https://github.com/LucasCaleb-ggg/dsh-session-cleanup
羽毛球分组比赛记分
小程序二维码

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

Xiaoye