EvilIrving/dsh-repro

Minimal, secret-scrubbed, replayable problem bundles for DeepSeek Harness sessio

dsh-repro exports a minimal, secret-scrubbed, replayable problem bundle for the current session: /repro reads the 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. The manifest carries the full contiguous canonical log (rebuildable via ctx.sessions.create(id, {seed})), failed tool calls as 'name <arguments>', the git diff, and versions. Scrubbing is fail-closed: whole-redaction of keys matching /KEY|PASSWORD|SECRET|TOKEN/i, of strings starting with known token prefixes (sk-, ghp_, xoxb-, Bearer ...), and of high-entropy runs; secrets are redacted, not dropped, preserving replay balance.

Other ★ 1 updated 2026-08-14 ⚠️ needs adapt
View on GitHub ↗

Install

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

README EN verified 2026-09-02 (repo EvilIrving/dsh-repro). Install per README: dsh plugin --profile <name> add github:EvilIrving/dsh-repro (or from a checkout). The bundle patch inserts one plugin row; it needs the commands and sessionPersistence services, which the base profile already mounts. subprocess is optional (git diff degrades to empty when absent or not a repo).

Compatibility

DSH profile with commands + sessionPersistence services; fail-closed secret scrubbing; /repro slash command.

Details

Recent updates

/repro bundle export; full canonical log + failed commands + git diff; fail-closed secret scrubbing (credential keys, token prefixes, high-entropy); replayable via session seed.

FAQ

What does /repro write?
A repro-<sessionId>.json manifest: the complete secret-scrubbed canonical log (contiguous from seq 0), failed tool calls, the git diff, and version info.
How are secrets handled?
Fail-closed: credential-shaped keys are redacted whole, token-prefixed strings (sk-, ghp_, xoxb-, Bearer ...) and high-entropy runs are redacted — never dropped, so replay stays balanced.
Can the bundle be replayed?
Yes — the events array is the full canonical log and can later be replayed via ctx.sessions.create(id, { seed }).

Alternatives

dongsheng123132/dsh-policy-drift-proof

More plugins in Other

Browse more in Other

Guides for Other plugins