dsh-archived:DeepSeek Harness 归档会话管理

前言

DeepSeek Harness (DSH) 原生没有提供删除已归档会话的接口。归档操作只能取消归档,而日志和投影缓存会一直留在磁盘上。dsh-archived 插件通过提供 UI 和 RPC 接口,填补了这一空白,确保会话日志、投影缓存和归档索引能被彻底清理。

插件介绍

这是一款记忆类插件,主要用于管理 DSH 的已归档会话。它为 DSH 的“设置 → 已归档”页面增加了删除、恢复和清理功能,并处理了索引残留和宿主契约检查等复杂状态。

核心功能

插件实现了以下核心能力:

  1. 会话删除:支持逐条删除和批量删除。默认采用“回收站”机制(30 天自动过期),也提供“永久删除”选项。
  2. 回收站管理:支持从回收站恢复会话,或清空回收站。顶部常显回收站中的会话数量和磁盘占用。
  3. 磁盘占用显示:列出每个会话的磁盘占用情况。
  4. 陈旧会话扫描:支持扫描并清理超过指定天数未动的会话(仅归档模式)。
  5. 目录访问:提供“打开文件夹”功能,直接在系统文件管理器中打开会话目录。
  6. 安全边界检查:
    • 仅接受已归档的 ID,拒绝删除未归档会话。
    • 拒绝删除正在运行的会话,或拥有正在运行子代理后代的父会话。
    • 处理索引残留,防止因只有索引而无文件导致的异常。
    • 进行宿主契约检查,确保宿主 API 可用。

安装与启用

安装命令如下:

dsh plugin --profile web add dsh-archived

前置要求:需要 DSH 0.2.0-rc.1 或更高版本。插件不支持 DSH 0.1.x。

典型用法

安装后,插件会自动挂载到 Settings -> Archived 页面。

界面操作

  1. 进入“设置 → 已归档”页面。
  2. 使用搜索框或工作区分组筛选会话。
  3. 勾选需要删除的会话,点击“删除”或“批量删除”。
  4. 在顶部回收站区域,可以点击“恢复最近一个”或“清空回收站”。

API 调用

通过 RPC 调用管理会话:

# 删除会话(进回收站或永久删除)
POST /api/dsh-archived/delete
Body: { "sessionId": "...", "mode": "quarantine" | "forever" }

# 批量删除
POST /api/dsh-archived/delete-all
Body: { "mode": "quarantine", "ids": ["id1", "id2"] }

# 从回收站恢复
POST /api/dsh-archived/restore
Body: { "sessionId": "..." }

# 扫描陈旧会话(仅读取)
POST /api/dsh-archived/sweep/scan
Body: { "days": 30 }

注意事项

  1. 24 小时硬保护:日志在 24 小时内写过的一律不列、不删,与天数设置无关。
  2. 宿主状态影响:如果宿主(Host)内存中还持有该会话,删除操作会暂时延迟执行(写入 deferred.json),直到宿主释放该会话(通常在重启后)。
  3. 不修改宿主数据:插件不会修改宿主的 schedule.json 或 message_feedback.json。
  4. 陈旧清理策略:陈旧会话清理只进回收站,永不永久删除。
  5. 权限要求:插件以当前 DSH 进程的权限运行,安装前请检查源码与许可证。

总结

dsh-archived 解决了 DSH 归档会话无法彻底清理的问题,提供了从 UI 到 RPC 的完整管理方案。对于需要维护长期会话记录的开发者来说,这是一个必要的清理工具。

更多资源:
* GitHub 仓库
* 社区目录

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

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

Xiaoye