dsh-session-repair
在终端中运行以下命令:
dsh plugin install snow-The/dsh-session-repair
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中执行 dsh plugin install snow-The/dsh-session-repair,或按仓库 https://github.com/snow-The/dsh-session-repair 的说明安装该插件。
插件介绍
DSH Harness 会把对话与运行轨迹写入 ~/.dsh/sessions 下的 session.jsonl.zstd。日志一旦格式不对,轻则解析报错,重则启动阶段直接失败,整段会话像「坏盘」一样无法继续使用。常见诱因包括:文件被压成「单帧 zstd」导致首帧不是单行 header,以及较新 Harness 写入了旧版本不认识的 event type,从而触发 SessionFormatUnsupportedError。
dsh-session-repair 面向这类「可修复的格式问题」而非业务逻辑本身。它提供 session_repair_scan 做只读体检:统计 zstd 帧数、行数、header 是否合法、解析错误与未知事件类型;session_repair_fix 则在备份原文件(.bak-repair-)后,按规范重建「每帧一行 JSON」的多帧布局,并对未知类型事件标记 ignorable: true,让旧 Harness 跳过而非拒读整份日志。修复流程遵循 backup → 临时文件重建 → 校验(frames == lines)→ 原子替换,扫描阶段绝不写盘。
适合经常切换 Harness 版本、从备份恢复会话、或排查「突然起不来 / 某条 session 一加载就炸」的开发者与插件维护者。运行 fix 后需重启 Harness;若你的当前版本其实已支持某些 event type,可通过 extraKnownTypes 避免误标为可忽略。系统需已安装 zstd CLI。
使用场景
- Harness 启动失败,怀疑 session.jsonl.zstd 首帧不是单行 header
- 升级或降级 Harness 后,旧会话因未知 event type 无法加载
- 批量检查 ~/.dsh/sessions 下哪些会话存在帧数/行数或解析异常
适合人员
- 经常切换 DSH Harness 版本的开发者
- 维护 agent 工作流插件、需要排查会话损坏的人
- 从备份恢复会话或做本地运维的同学