精选
为什么选中它
待人工精选——以下事实来自源码仓库。
它能做什么
Minimal, secret-scrubbed, replayable problem bundles for DeepSeek Harness sessions (/repro).
适合谁
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
风险提示
- 未发现明显风险信号;安装前仍建议查看源码。
Minimal, secret-scrubbed, replayable problem bundles for DeepSeek Harness sessions (/repro).
待人工精选——以下事实来自源码仓库。
Minimal, secret-scrubbed, replayable problem bundles for DeepSeek Harness sessions (/repro).
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
dsh plugin --profile web add github:EvilIrving/dsh-repro 作者没有声明支持的平台。
/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 sh dsh plugin --profile <name> add github:EvilIrving/dsh-repro Or, from a checkout: sh 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 ts 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; 2. redacts any string beginning with a known token prefix (sk-, ghp_, xoxb-, Bearer , …); 3. 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 ts 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.不看 Star,人工一条条挑的。
把 DSH 的 settings.yaml 做成可视化看板:所有已注册的 settings namespace——包括官方界面从未覆盖的第三方插件配置——都渲染成可编辑表单。项目还早,但方向很对:告别手改 YAML。
给 DSH 的 DIY 轨迹可视化:把 agent 的计划与执行画成图,不用翻原始日志也能看清它在干嘛。项目还早,但补上了「一眼看懂 agent 在做什么」这个真实缺口。
从 Claude Code / Codex 把活派给 DSH:在宿主内拉起带分级预设的 DSH agent 会话,看原生子代理进度,还能借它的多模态桥给纯文本的 DSH 补上视觉和生图。编排型插件,把 DSH 变成其他编码 agent 的后端。