前言¶
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,在设置页面中即可找到该插件入口。
使用流程¶
- 切换会话:当前正在查看的会话无法删除,必须先切换到其他会话。
- 运行状态限制:标记为
running的会话会被拒绝删除。 - 确认与撤销:删除操作需要用户确认,且确认后无法撤销。
实现细节与限制¶
- 后端要求:需要使用 JSONL 持久化后端(
dsh web默认配置)。删除操作会拒绝任何无法通过locate()返回会话目录的后端(例如 SQLite)。 - 文件清理:删除操作会清除任何活动的 agent 或 session,防止下次刷新时系统重写文件。
- 数据移除:插件会从工作区
sessionIds和全局archivedSessionIds集合中移除 ID。 - 归账本处理:由于上游没有发布对应的 API 来从归档账本中移除 ID,插件直接写入
WorkspaceRegistry状态。该写入操作不运行在注册表的内部操作队列上,若发生并发冲突会报错,而非静默覆盖。 - 单次上限:一次请求最多处理 200 个 ID,超过此数量需分批操作。
结语¶
dsh-session-vault 提供了 DeepSeek Harness 实例中清理不可见会话的能力,适合需要维护大量历史会话或遇到会话索引混乱的开发者使用。