DSH(DeepSeek Harness)在运行过程中会产生大量的会话历史文件。随着使用时间增长,归档文件会积压,部分会话可能出现状态不一致或投影缓存损坏。dsh-session-steward 旨在解决这两个问题:通过“养老院”功能管理会话历史,通过“体检”功能诊断会话健康状态。
插件定位¶
drscrewdriver/dsh-session-steward 是一个 DSH Web 插件,用于会话历史文件管理与健康检查。它为异常会话提供投影级的体检与可逆修复能力。
核心功能¶
插件主要提供两块功能:
会话历史文件(养老院)¶
浏览官方归档集合,提供两个独立操作:
1. 取消归档状态:修改 global.archivedSessionIds 数组,将会话移回原工作区,可逆。
2. 清理归档文件:删除磁盘实体文件,不可逆。清理必然连带取消归档,否则会产生“侧边栏看不见、一取消归档就变成空会话”的僵尸 ID。
会话健康检查(体检)¶
提供“四门体检 → 处方 → 出院”的流程。支持批量体检 session-health-scan 和可逆处置 session-health-repair。
安装与启用¶
安装命令如下:
dsh plugin --profile web add dsh-session-steward
安装后必须重启 DSH 进程(仅刷新页面无效)。
路由与 API¶
插件注册在 /session-steward/api 路径下,方法名均为 session-*。安装后,侧边栏底部会新增「会话管家」入口。
| 方法 | 子域 | 作用 |
|---|---|---|
session-health-status |
health | 开关状态与方法表 |
session-health-scan |
health | 批量体检 |
session-health-session |
health | 单会话四门报告 |
session-health-repair |
health | 可逆处置 |
session-history-list |
history | 列出归档集合 |
session-history-prune |
history | 取消归档状态 |
session-history-purge |
history | 清理归档文件 |
配置开关¶
插件提供两个 feature gate:
| 开关 | 字段 | 默认值 | 关闭效果 |
|---|---|---|---|
| 会话历史文件 | historyFiles |
true | 不注册 session-history-* 方法,不渲染「养老院」页签 |
| 健康检查 | healthCheck |
true | 不注册 session-health-* 方法,不渲染「体检」页签 |
四门体检¶
| gate | 判据 | level |
|---|---|---|
log-integrity |
zstd 多帧扫描、provenance 展开、seq 连续性 | 有读取问题 fail;仅撕裂尾帧 warn |
projection-cache |
~/.dsh/storages/session_projcache/sessions/<id>.json 的 minSeq 与日志末 seq 的 lag + 未结算字段 |
滞后且未结算 fail;任一 warn |
lossless-json |
热态 sessionProjections.checkpoint(session) 逐行判定无损 JSON |
命中 fail |
cold-read |
最后 turn/end 的原因、是否存在未收尾 open step |
open step fail;interrupted/无 turn/end warn |
注意事项¶
-
硬约束:
- 列表与写入同源:列表与写入操作均认存储文件~/.dsh/storages/workspace.json。宿主内存里的workspaceRegistry是启动快照,改文件写不到内存,必须重启 DSH 使改动生效。
- 操作后重启:任何归档或工作区改动,操作后必须立刻重启 DSH,否则会话状态会回滚。 -
格式契约:
- 本插件写、搜索索引只读。搜索/独立索引属于另一片dsh-search-index,本插件不提供搜索与索引功能。 -
禁止项:
- 禁止改写会话日志、改历史数据、静默丢弃字段。