鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-session-recovery

从原始磁盘恢复被删除或损坏的 dsh 会话(session.jsonl.zstd)与记忆库(memory.db),并通过 web 界面中的 /session-repair 命令修复重建后无法续接的会话。

会话消息
访问 GitHub
文档README

dsh-session-recovery

从原始磁盘恢复被删除/损坏的 DeepSeek Harness 会话与记忆库

Awesome DSH Plugin

English · 中文


🛟 在 rm -rf ~/.dsh 误删或文件损坏后,dsh 的会话记录(session.jsonl.zstd)与记忆库(memory.db)通常仍可从原始块设备中找回——本仓库是实战验证过的恢复手册与配套脚本。

✨ 功能特性

🧠 记忆库恢复以 SQLite format 3 文件头定位 memory.db,dump 后用 SQLite 官方 .recover 抢救(跳过损坏页、保留可读记录)。
💬 会话恢复扫描 zstd 帧魔数 0xFD2FB528,按磁盘偏移聚类,在 turn 重置处拆分会话,重建官方格式 session.jsonl.zstd。
🔧 自动修复seq 重编号连续、深度修复 sourceEventSeqs/messageSeqs、归一化 surfaceOp——重建日志通过 DSH 校验。
🔁 续接修复重建文件在续接时可能报错(invalid persisted inbox splice、Messages with role 'tool' must be a response to tool_calls)——repair-session.js(或 web 界面的 /session-repair 命令)逐条重放 DSH 的 inbox/surface/wire 规则并修复。
🛡️ 安全设计脚本只读块设备、写入你指定目录,绝不修改原始磁盘。

🚀 快速开始

▼
bash
复制代码
# 1. 停掉一切写盘的东西(systemd 服务、dsh 本身) systemctl stop dsh-web # 2. 恢复记忆库(SQLite) node scripts/recover-memory.js /dev/<设备> /tmp/recovered/ # 3. 扫描磁盘上的会话帧 node scripts/scan-zstd.js /dev/<设备> > /tmp/session-events.jsonl # 4. 把混合事件按会话拆分 node scripts/split-sessions.js /tmp/session-events.jsonl 2026-08-16T07:05:06Z # 5. 重建会话文件(官方格式) node scripts/rebuild-session.js \ --input /tmp/sess-A.jsonl \ --id session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --created-at 1786705157736 \ --cwd /path/to/workspace \ --out-dir ~/.dsh/sessions/--workspace-encoded--/ # 6. 续接前校验/修复(修复 inbox splice 错位、重复/孤儿 tool 结果、悬空 tool 调用) node scripts/repair-session.js \ ~/.dsh/sessions/--workspace-encoded--/<session-id>/session.jsonl.zstd --dry-run node scripts/repair-session.js \ ~/.dsh/sessions/--workspace-encoded--/<session-id>/session.jsonl.zstd # → 生成 session.jsonl.zstd.repaired(+ .bak-<时间戳>),确认后覆盖: cp ~/.dsh/sessions/--workspace-encoded--/<session-id>/session.jsonl.zstd.repaired \ ~/.dsh/sessions/--workspace-encoded--/<session-id>/session.jsonl.zstd

📖 完整分步手册(中文,含 DSH 校验规则与所有可能遇到的报错):RECOVERY.md

📦 作为 dsh 插件安装

说明:本仓库核心是恢复工具集(脚本 + 手册),同时作为 dsh 插件安装后会向 web 界面注册 /session-repair 命令。

在包含本仓库的目录(本地安装,无需发布):

▼
bash
复制代码
dsh plugin --profile web add file:/path/to/dsh-session-recovery systemctl restart dsh-web

然后在 web 界面的任意会话里输入:

▼
text
复制代码
/session-repair --dry-run # 只分析当前会话(不写任何文件) /session-repair <会话id或路径> # 修复 → 生成 .repaired + 备份 /session-repair --apply <id> # 同时覆盖原文件

默认只生成新的 .repaired 文件 + 备份;--apply 才覆盖原文件(对正在运行当前会话会拒绝,需从其他会话执行)。应用后重启 dsh-web。

需要 Node 24+(node:sqlite、node:zlib)。

📖 背景知识

DeepSeek Harness 的数据存放在 ~/.dsh 下:

▼
text
复制代码
~/.dsh/ ├── sessions/<workspace-encoded>/<session-id>/session.jsonl.zstd # 会话记录 ├── memory/memory.db # dsh-mneme 记忆库 └── storages/workspace.json # 工作区注册表

会话日志是 zstd 帧的拼接流——每一行 JSONL 一个独立帧(源码)。这种逐行分帧的结构正是"部分恢复"可行的原因:即使部分帧被覆盖,周围的完整帧仍能独立解码。

🗂️ 仓库结构

▼
text
复制代码
├── RECOVERY.md # 完整恢复手册(中文,实战验证) ├── cordis.patch.yml # dsh 插件 patch(注册 /session-repair) ├── docs/ │ ├── awesome-entry.yml # 已按格式写好的 Awesome DSH Plugin 列表条目 │ └── GITHUB-PUBLISH.md # 发布与 PR 操作清单 ├── lib/ │ ├── index.js # dsh 插件入口:/session-repair 命令 │ └── repair.js # 共享修复核心(CLI + 插件共用) ├── scripts/ │ ├── scan-zstd.js # 磁盘扫描:定位并聚类 zstd 会话帧 │ ├── split-sessions.js # 把混合恢复事件按会话拆分 │ ├── rebuild-session.js # 重建官方格式 session.jsonl.zstd │ ├── repair-session.js # 修复重建后无法续接的会话 │ ├── make-test-fixture.js # 生成带损伤的样本会话,离线测试修复 │ └── recover-memory.js # 定位并抢救 memory.db(SQLite .recover) └── package.json # dsh 插件 manifest(dsh.bundle + main 入口)

🔖 Topics

dsh-plugin · dsh · deepseek-harness · session-recovery · data-recovery · zstd · sqlite

📄 License

MIT

会话消息

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:Coprexist/dsh-session-recovery

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
dsh 插件推荐
dsh-btw
提供 /btw 一次性上下文旁问,不执行工具;回答显示在可复制、折叠或关闭的独立气泡中,不写入主对话。
billion-context
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
dsh-conversation-archive
在 Windows 上管理 DSH 已归档会话,支持搜索、批量取消归档与删除、AI 辅助文件保留,以及经过校验的本地或网络目录备份。
dsh-auto-continue
回答因达到单次输出 token 上限被截断时自动发送"继续"续写,无需手动操作;面向自部署 Ollama 等小输出上限场景。
dsh-branchmark#dsh-branchmark
Vibe Coding 时,如果突然想到另一个问题,或者看到一段以后还会用到的回答,可以先保存下来、在 Side Chat 里快速问清楚,或另开一个相关会话继续研究,不打断当前任务的开发思路和注意力。
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题