dsh-session-snapshot:DeepSeek Harness 会话的滚动完整性备份

前言

DeepSeek Harness(DSH)的插件化架构允许开发者灵活扩展功能,但会话日志的损坏始终是一个风险点。即便有防止并发写入的插件,进程崩溃或冷加载时的数据损坏依然可能发生。dsh-session-snapshot 旨在填补这一残留的缺口。它在每个回合结束时验证日志是否可加载,若可加载则将其提升为快照。这样,当日志损坏时,损失被限制在当前正在进行的回合中。

定位

这是一个为 DeepSeek Harness 提供会话备份的插件。它提供滚动且经过完整性验证的备份,确保损坏带来的损失最小化。该插件由 po-et 维护,属于「记忆」类别。

核心能力

  1. 自动快照:在回合边界自动创建快照。
  2. 完整性验证:在将日志提升为快照前,先验证实时日志是否仍可加载。
  3. 良好副本保留:确保在回合边界保留经过验证的良好副本。
  4. 轻量级运行:零运行时依赖。

安装与启用

目前该插件未发布到 npm,需要直接从 GitHub 安装。

dsh plugin --profile web add github:po-et/dsh-session-snapshot

安装后,插件会在回合边界自动运行。如果使用 AI 代理,可以指示其安装此插件。

使用示例

即使 DSH 本身无法启动,也可以使用 npx 运行此插件。

列出所有会话的快照和健康状态:

npx github:po-et/dsh-session-snapshot

列出特定会话(通过 ID 片段)的快照:

npx github:po-et/dsh-session-snapshot list 37374e34

恢复最新的验证快照:

npx github:po-et/dsh-session-snapshot restore 37374e34

注意:restore 命令会先将当前文件备份为 <artifact>.pre-restore-<time>,且只恢复能够通过验证的快照。

手动立即创建快照:

npx github:po-et/dsh-session-snapshot snapshot 37374e34

配置说明

插件支持 YAML 配置,用于控制保留策略和执行频率。

- id: session-snapshot
  name: dsh-session-snapshot
  config:
    keep: 5            # 每个会话保留的快照数量,超过此数量将删除最旧的
    minIntervalMs: 0   # 同一会话快照间的最小间隔(毫秒),0 表示每次变化都创建
    # home: /custom    # 默认为 $DSH_HOME (~/.dsh)

快照文件保存在 $DSH_HOME/session-snapshots/<session-id>/ 目录下。

范围与注意

  • 备份范围:快照仅包含会话日志的点时副本,不备份工作区文件。
  • 格式支持:支持会话格式版本 0(.l 和 .l.zstd)。由于 DSH 处于 1.0 版本前(预览版),不保证格式兼容性。
  • 未知版本:遇到未知版本时,工具会拒绝处理并提示错误,而不是尝试猜测。
  • 依赖:MIT 许可证,零运行时依赖(压缩处理依赖 Node.js 内置 zlib)。

结尾

dsh-session-snapshot 是会话完整性套件的一部分,配合会话防护和救援插件使用,能够有效降低会话数据丢失的风险。更多详情请访问插件目录页或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜