dsh-session-rescue
by po-et
修复 DeepSeek Harness 的「corrupt session log」:诊断、安全修复并抢救损坏的 dsh 会话;零依赖
Fix 'corrupt session log' in DeepSeek Harness: diagnose, safely repair, and salvage broken dsh sessions. Zero dependencies.
安装
dsh plugin --profile web add github:po-et/dsh-session-rescueGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
修复 DeepSeek Harness 的 "history unavailable … corrupt session log"——安全、常见场景零丢失。
npx dsh-session-rescue
如果你见过这些报错,这个工具就是为你写的:
corrupt session log: seq gap in committed region at line N (expected X, got Y)corrupt session log: unparsable committed event at line Nfirst line is not a session header- 崩溃 / 强杀进程 / 双开实例之后的
SessionPersistenceCorruptionError
dsh 的会话日志是 append-only 且严格校验的:崩溃恢复或第二个进程多写了一段重复事件,整个会话就永远打不开——但你的内容其实几乎都还在。dsh-session-rescue 按 dsh 加载器的原样规则定位损坏点,摘除冗余侧(重放行、过期的合成中断收尾块),重建一个可加载的日志。
快速开始
# 1. 看哪些会话坏了(只读,绝对安全)
npx dsh-session-rescue
# 2. 深度诊断某个会话(路径或 id 片段均可)
npx dsh-session-rescue doctor 37374e34
# 3. 预览修复方案——此时不写任何东西
npx dsh-session-rescue repair 37374e34
# 4. 执行修复(自动保留带时间戳的备份;请先关闭 dsh)
npx dsh-session-rescue repair 37374e34 --apply
修不了的也能救回对话内容:
npx dsh-session-rescue export 37374e34 # 抢救对话全文为 Markdown
npx dsh-session-rescue quarantine 37374e34 # 把坏会话移出 dsh 视野,防止拖垮启动
在用 AI agent?直接对它说:"运行 npx dsh-session-rescue,把我损坏的 dsh 会话修好。"
能修什么
| 损坏 | 成因 | 修复方式 |
|---|---|---|
| 重放的重复行 | 崩溃 / 强杀 / write-behind 重放 | 去重——零丢失 |
| 合成收尾块与真实续写撞号 | 中断恢复 + 第二写入方 | 摘除合成块、保留真实内容——零丢失 |
| zstd 尾帧撕裂 | 写入中断电 | 无需处理(dsh 自愈,工具会明说) |
| header 损坏 | 手工编辑、部分写入 | 重建 header |
| 真实 seq 空洞(事件确实丢了) | 强制压缩、写入丢失 | 显式 --truncate 保住可加载前缀;export 抢救其余 |
为什么安全
社区案例证明:外行修复可能把会话修死(悬空 sourceEventSeqs 毒化,永久报废)。本工具:
- 不备份,不动原文件——带时间戳的备份就放在原文件旁边。
- 写前验证:重建结果必须通过 seq 连续性与
sourceEventSeqs引用检查(与 dsh 自身校验一致),不安全的方案直接拒绝执行。 - 写后复检:修复完成立刻重扫,若仍无法加载会如实报告,备份完好无损。
- 保留原始字节:保留的行原样复制,绝不重新序列化。
- 按 dsh 的物理布局重建(zstd 帧 0 仅含 header 行)。
与其他工具的关系
| dsh-session-rescue | doctor 类工具 | export 类工具 | |
|---|---|---|---|
| 检测损坏 | ✅ | ✅ | — |
| 把会话修到能加载、能继续用 | ✅ | ❌ | ❌ |
| 修不了时抢救对话全文 | ✅ | ❌ | ✅ |
| 拒绝不安全写入 | ✅ | 不适用 | 不适用 |
范围与诚实声明
- 支持会话格式 version 0(当前 dsh developer preview),
.jsonl与.jsonl.zstd,仅 JSONL 后端。dsh 处于 pre-1.0、无格式兼容承诺;遇到未知版本本工具会明确拒绝而不是乱猜。 - 修复时请关闭 dsh(至少保证该会话空闲)——活跃写入方会与文件替换竞争。
- 零依赖。Node ≥ 22.15(使用内置 zstd)。
许可证
原始 README: https://github.com/po-et/dsh-session-rescue/blob/main/README.zh.md ↗
同类插件
查看全部 →
archify
Agent 技能:生成美观、可校验的架构图、工作流图、时序图、数据流图与生命周期图——自包含 HTML、带动画与清晰导出

dsh-turn-rewind
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。

dsh-plugin-cc
把 DeepSeek Harness 接入 Claude Code:评审、批评、委派与会话导入

dsh-interconnect
跨实例互联:经 interconnect 服务在多个 DSH 实例间转发消息与事件。

dsh-chat-import
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。

dsh-crew
DSH 插件:从 Claude Code / Codex 向 DSH agent 派活——原生 subagent 进度、宿主内 worker 会话(分级预设),以及为纯文本宿主补上视觉与图像生成的多模态桥