dsh-repro:为 DeepSeek Harness 生成可回放的问题包

前言

在 DSH 里排查一个会话时,现场信息通常散在会话日志、失败命令和仓库差异里。直接把上下文贴出去,又可能把凭证带出去。dsh-repro 用来处理这个折中:它从当前会话读取完整 canonical log,对疑似凭证做值级清理,收集失败命令和 git diff,最后写成一个可传递、可后续回放的问题包。

下面介绍这个插件的定位、安装方式、核心行为和已知边界。

这是什么

dsh-repro 是一个 DeepSeek Harness 插件,由 EvilIrving 维护,许可证为 MIT。

它提供一个 /repro 命令,用于导出一个最小化、已清理秘密、可回放的问题包。

核心功能

提供 /repro 命令

插件提供如下斜杠命令:

/repro [output directory]

运行后,命令会返回一条一行成功信息,说明写出的 bundle 路径。bundle 内容不会被注入到模型上下文里。

读取当前会话日志

它会通过 sessionPersistence.inspect 读取当前会话的完整 canonical log。

输出中的 events 是从 seq 0 开始的连续完整日志,后续可以通过:

ctx.sessions.create(id, { seed })

进行回放。

逐值清理秘密

默认清理策略是 fail-closed:看起来像凭证的字符串会被 redact,而不是直接放行。

清理规则覆盖三类 credential-shaped values:

1、按 key pattern 命中的对象键。
2、以已知 token 前缀开头的字符串。
3、高熵长串。

相关默认配置项包括:

minHighEntropyLength: 20
gitDiffMaxBytes: 256 KiB
gitGraceMs: 5000

收集失败命令与 git diff

插件会收集失败命令,并附带一份 git diff

如果 subprocess 不可用,或当前目录不是 git 仓库,git diff 会退化为空字符串。

输出清单

最终写出的文件名是:

repro-<sessionId>.json

它包含清理后的完整 canonical log、失败命令和 git diff

安装与启用

从 GitHub 安装:

dsh plugin --profile <name> add github:EvilIrving/dsh-repro

从本地 checkout 安装:

dsh plugin --profile <name> add ./dsh-repro

安装命令中的 <name> 是 profile 名占位符,需要替换为实际 profile 名。

bundle patch 会插入一行插件记录(dsh-repro)。它需要 commandssessionPersistence 服务,基础 profile 已经挂载这些服务。

典型用法

1、在一个出现问题的 DSH 会话里运行:

/repro [output directory]

2、查看返回的一行成功信息,拿到 bundle 路径。
3、将 bundle 作为问题材料传递;它包含整理后的 canonical log、失败命令和 git diff

如果需要复用会话现场,后续可以使用:

ctx.sessions.create(id, { seed })

进行回放。这不是 /repro 本身执行的 CLI 命令。

适用场景与注意

适合需要把 DSH 会话问题压缩成可传递材料、同时避免把明文凭证带出去的场景。

注意:

  • commandssessionPersistence 是硬依赖(inject)。
  • subprocess 是可选依赖;缺失或 cwd 不在仓库中时,git diff 为空字符串。
  • v1 只做导出,不包含 replay CLI;dsh repro run <bundle> 是独立的 process-level seam,不在 /repro 范围内。
  • v1 的 bundle 写入绕过 sandboxed ctx.fs seam,直接使用 node:fs/promises;路由到 ctx.fs 被推迟。
  • 不做 oversized-artifact 内联;spill artifacts 只通过 locator 引用,不做文件字节内联。
  • DSH 插件以当前 dsh 进程权限运行;安装前请检查源码与许可证。本项目许可证为 MIT。

结尾

dsh-repro 的价值在于把当前会话日志、失败命令和 git diff 整理成一个带秘密清理、可后续回放的问题包。

GitHub 仓库:https://github.com/EvilIrving/dsh-repro

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

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

小夜