DeepSHPlugins
dsh-repro 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-repro

生態與開發TypeScriptMIT

/repro 匯出最小可復現問題包:去 secret 的會話日誌、失敗命令與 git diff。

2 StarsEvilIrving 更新時間 2026-08-14
訪問 GitHub 倉庫
dsh-repro 專案預覽

專案介紹

中文

/repro 匯出最小可復現問題包:去 secret 的會話日誌、失敗命令與 git diff。

English

/repro exports a minimal, secret-scrubbed, replayable problem bundle: the session log, failed commands, and Git diff.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
EvilIrving
倉庫
EvilIrving/dsh-repro
GitHub Stars
2
Forks
0
開發語言
TypeScript
許可證
MIT
最近推送
2026-08-14
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

54/ 100
維護活躍
81
文件與實用資訊
85
生態關注度
14
安裝便捷訊號
75
專案宣告訊號
100

README 含完整安裝與使用說明;關注度尚低(2)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:EvilIrving/dsh-repro

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-repro

Export a minimal, secret-scrubbed, replayable problem bundle for the DeepSeek Harness.

Awesome DSH Plugin

/repro reads the current session's complete canonical log through sessionPersistence.inspect, scrubs secrets value by value, collects failed commands and a git diff, and writes a repro-<sessionId>.json manifest.

Install

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

Or, from a checkout:

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

The bundle patch inserts one plugin row (dsh-repro); it needs the commands and sessionPersistence services, which the base profile already mounts.

What the bundle contains

interface ReproManifest {
  formatVersion: number          // 1
  header: SessionHeader          // cwd, lineage, delegation depth
  events: SessionEvent[]         // complete, secret-scrubbed canonical log
  failedCommands: string[]       // `name <arguments>` for each errored tool call
  gitDiff: string                // empty when git or a repo is unavailable
  versions: Record<string, string>
}

The events array is the full canonical log (contiguous from seq 0), so it can later be replayed via ctx.sessions.create(id, { seed }); secrets are redacted, not dropped, which preserves replay balance.

Secret scrubbing (fail-closed)

redactValue walks the detached JSON log and:

  1. redacts any object key matching the harness's credential pattern

(/KEY|PASSWORD|SECRET|TOKEN/i) whole;

  1. redacts any string beginning with a known token prefix (sk-, ghp_,

xoxb-, Bearer , …);

  1. redacts any high-entropy run (long base64/hex/token-shaped sequence).

Both prefix and entropy thresholds are Config-driven. The default is fail-closed: a string that looks credential-shaped is redacted rather than passed through. This mirrors session-telemetry's waterfall *shape* (rewrite an outbound copy, never the canonical log) while supplying the value-level rules the telemetry seam deliberately ships without.

Config

export interface Config {
  tokenPrefixes: string[]
  minHighEntropyLength: number  // default 20
  gitDiffMaxBytes: number       // default 256 KiB
  gitGraceMs: number            // default 5000
}

Dependencies

  • commands and sessionPersistence are hard dependencies (inject).
  • subprocess is optional (ctx.get): git diff degrades to an empty string

when it is absent or the cwd is not a repository.

Model Experience

Request context and condition

What the model sees

A single slash command /repro [output directory]. Its result is a one-line success message naming the written bundle path; the bundle contents are never injected into the model context.

Token effect

Zero-direct effect; the command result is a single short text line.

KV Cache effect

Append-only: the command lifecycle events (command/run, command/done) append to the log and never rewrite earlier tokens.

Known Limitations and Deferred Work

  • Bundle write bypasses the sandboxed ctx.fs seam — v1 uses

node:fs/promises directly; routing the write through ctx.fs (so a sandboxed deployment constrains the output path) is deferred.

  • Replay CLI is out of scope — dsh repro run <bundle> is a separate

process-level seam (boot/cmdline + cmdlineArgs), not /repro; v1 only exports.

  • No oversized-artifact inlining — spill artifacts are referenced by

locator, never inlined; any file-byte inlining would need a size policy.

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案