dsh-session-backup
Cold backup for DeepSeek Harness session histories: full + incremental backup with sha256 manifest and loader-mirror pre-validation, plus verified restore. 会话历史冷备份工具。
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 6, 2026
- Updated
- Sep 6, 2026
Introduction
dsh-session-backup
DeepSeek Harness 会话历史冷备份工具:全量 + 增量备份(带 sha256 manifest 与 loader-mirror 预校验),以及校验恢复。零运行时依赖。
会话历史是人与 DSH 之间交换记忆的唯一介质——备份是防"唯一记忆丢失"的 最后防线。与 dsh-session-doctor 互补:doctor 管"坏了修",backup 管"坏了能回滚/防丢"。
能力
- 全量备份:扫描 sessions 根下全部会话 → 复制到目标目录(保持
<id>/session.jsonl.zstd结构),生成manifest.json(id/源路径/大小/ mtime/sha256/状态)。 - 增量备份:二次运行按 manifest 的 size+mtime 跳过未变会话;源变更才重拷。
- 备份前校验:每个会话先跑 loader-mirror 校验(与加载器同规则),坏会话
在 manifest 标
status: corrupt并列出警告(不静默),但仍备份以便未来 用 doctor repair。 - 恢复 restore:按 manifest 把会话恢复到目标路径,逐个 sha256 校验备份
完整性;拒绝覆盖已存在文件(需
--force,防误覆盖 live 会话)。
用法
# 全量备份(第二次跑自动增量)
node bin/dsh-session-backup.js backup <sessions-root> <backup-dir>
# 查看备份清单
node bin/dsh-session-backup.js list <backup-dir>
# 恢复全部(到新目录)
node bin/dsh-session-backup.js restore <backup-dir> <dest>
# 恢复指定会话 / 覆盖已有
node bin/dsh-session-backup.js restore <backup-dir> <dest> --ids a,b --force
典型:备份整个 DSH 会话库到独立磁盘:
node bin/dsh-session-backup.js backup D:/tool/dsh_data/sessions D:/session-backups
测试
npm test # 合成 fixture:全量/增量/校验/restore/拒覆盖
node scripts/verify-real.mjs # 真实会话副本验收(不碰真实数据)
安全边界
- 零运行时依赖(Node 内置 fs/crypto/zlib)。
- 备份前校验坏会话 → 标记而非静默;restore 校验 hash + 拒绝误覆盖。
- 不压缩/不加密(原样复制 zstd 产物,保持字节一致)。
- 验收全在副本上进行,不碰真实会话。
License
MIT