dsh-session-vault:DeepSeek Harness 会话清理插件

前言

DeepSeek Harness (DSH) 在长期使用后,侧边栏通常会堆积大量归档会话或无日志记录的空白会话。这些会话在界面中不可见,但会占用存储空间并污染 sessionIds 集合。dsh-session-vault 是一个设置插件,用于列出并删除侧边栏隐藏的归档或空白会话,以及无法读取日志的会话。

插件介绍

该插件由 nateyu 维护,是一个 DeepSeek Harness 客户端插件。它的核心作用是提供一个设置页面,让用户能够清理那些被产品界面隐藏、无法正常交互或日志损坏的会话。

核心功能

  • 列出并删除隐藏会话:插件会列出侧边栏隐藏的归档会话、无日志记录的空白会话,以及无法读取日志的“Unreadable”会话。
  • 会话过滤与分页:列表支持按类型和日期过滤,并支持分页浏览。
  • 排除 Subagent:插件自动排除 Subagent 类型的会话,避免误删。
  • 多语言导航:设置页面的导航标签会自动跟随产品语言,中文环境下显示“归档”,英文环境下显示“Archive”。
  • RPC 删除机制:删除操作通过 Connection RPC 进行,确保了操作的底层权限控制。
  • 批量限制:单次 vault.delete 调用最多接受 200 个会话 ID。

安装与启用

使用官方插件目录安装:

dsh plugin --profile web add dsh-session-vault

安装完成后,重启 dsh web,在设置页面中即可找到该插件入口。

使用流程

  1. 切换会话:当前正在查看的会话无法删除,必须先切换到其他会话。
  2. 运行状态限制:标记为 running 的会话会被拒绝删除。
  3. 确认与撤销:删除操作需要用户确认,且确认后无法撤销。

实现细节与限制

  • 后端要求:需要使用 JSONL 持久化后端(dsh web 默认配置)。删除操作会拒绝任何无法通过 locate() 返回会话目录的后端(例如 SQLite)。
  • 文件清理:删除操作会清除任何活动的 agent 或 session,防止下次刷新时系统重写文件。
  • 数据移除:插件会从工作区 sessionIds 和全局 archivedSessionIds 集合中移除 ID。
  • 归账本处理:由于上游没有发布对应的 API 来从归档账本中移除 ID,插件直接写入 WorkspaceRegistry 状态。该写入操作不运行在注册表的内部操作队列上,若发生并发冲突会报错,而非静默覆盖。
  • 单次上限:一次请求最多处理 200 个 ID,超过此数量需分批操作。

结语

dsh-session-vault 提供了 DeepSeek Harness 实例中清理不可见会话的能力,适合需要维护大量历史会话或遇到会话索引混乱的开发者使用。

插件目录
GitHub 仓库

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

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

小夜