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

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

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

小夜