
Areium/dsh-fail-logger
81Last commit Aug 14, 2026
dsh-fail-logger DSH plugin
dsh-fail-logger listens to session events and records tool failures (native and PTC) into a skill's auto-log section. It normalizes, deduplicates, counts, and ranks failures by frequency, with TTL pruning and redaction. The next session's model can load the skill to see common failure causes, helping it fail less over time.
How to install the dsh-fail-logger DSH plugin
dsh plugin --profile web add dsh-fail-loggerCopying does not run this command. Review the repository and version before installing the dsh-fail-logger DSH plugin.
dsh-fail-logger DSH plugin data source
dsh-fail-logger DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-fail-logger DSH plugin can do
- Automatically captures tool failures from session events (native tools, PTC code execution, nested tool calls).
- Normalized deduplication: paths and long numbers are normalized before hashing, so similar errors merge.
- Per-day trend line: shows failure counts for the last 7 days, with TTL pruning for stale entries.
- Categorized rendering: failures grouped under filesystem, permissions, timeout, network, etc., with rule-based suggestions.
- Always-on push prevention instructions (optional) that inject code-time rules to avoid execution mistakes.
- Cross-process lock-merge: safe for concurrent web/headless profiles; atomic writes with corruption recovery.
Where the dsh-fail-logger DSH plugin fits
- Debugging recurring tool failures by reviewing the accumulated log in the skill.
- Helping the model learn from past mistakes without manual intervention.
- Identifying permission or I/O issues that occur frequently across sessions.
- Comparing failure patterns across different workspaces or agents.
- Tracking failure trends over time to measure improvement after plugin installation.
Who the dsh-fail-logger DSH plugin is for
- Developers using DeepSeek Harness who want to reduce repeated tool failures.
- Users running autonomous agents that need to self-improve from execution errors.
dsh-fail-logger DSH plugin limitations
- Only records failures that reach the session log; catastrophic process death during tool execution is out of scope.
- Non-zero exit codes are not recorded (DSH semantics, not a plugin bug).
- Dedup is heuristic: same root cause with different wording may split, and different causes with identical wording may merge.
- Display keeps original text (path/username normalized only for dedup key); privacy requires explicit redact configuration.
- Always-on instructions add ~42-65 tokens/step (can be disabled via config).
- The model may not load the skill for simple single-turn tasks; it loads reliably only when the task mentions failure analysis or history comparison.
dsh-fail-logger DSH plugin: from the repository README
Quoted from the Areium/dsh-fail-logger README, the upstream source of the dsh-fail-logger DSH plugin. Copyright remains with the original authors.
An all-mode tool failure recorder for DeepSeek Harness: whether the agent runs in **native mode** or **PTC (Code Mode)**, any tool failure is automatically written into the machine-maintained section of a skill — normalized-dedup, counted, deterministically ranked, TTL-pruned, and redacted — so the next session's model sees the most common failure causes when it loads the skill. **Fail less over time.** ## Coverage matrix & trigger conditions | Execution mode | Failure source | Recorded as (kind / message) | |---|---|---| | Native tools (read/grep/write and third-party plugin tools…) | `tool/call` + `tool/result` (tool-result block isError=true) | `tool` / `[read] ENOENT: no such file …` | | PTC `run_code` failures | `tool/result` (isError=true) | official kind (`exception`/`timeout`/`abort`/…) / raw message | | Nested tool calls inside a code program (`tools.*` throwing) | `tool/code-dispatch` (isError=true) | `tool` / `[bash] exit code: 1` | > **Trigger condition**: a failure is recorded only when the tool result is marked `isError: true`. **A non-zero shell exit code does NOT trigger recording** (e.g. `exit 1` is presented as plain text `[exit code: 1]`, not an error) — only
Read the full READMERepository license: MIT
dsh-fail-logger DSH plugin questions
How do I install dsh-fail-logger?
Run `dsh plugin --profile web add dsh-fail-logger` in your terminal. You can also pin to a specific version, e.g., `dsh plugin --profile web add dsh-fail-logger@0.5.1`, or install from GitHub release tag. After installation, restart `dsh --profile web`. The plugin works out of the box with zero configuration.
Does this plugin work with headless mode?
Yes, it works with headless mode as well. Use the same command with the headless profile, e.g., `dsh plugin --profile headless add dsh-fail-logger`. The plugin listens to session events and records failures regardless of the execution mode.
What kind of failures does the plugin record?
It records tool failures that are marked `isError: true` in the session events. This includes native tool failures (like read on a missing file, grep failure), PTC 'run_code' failures, and nested tool calls inside code programs. Non-zero shell exit codes (e.g., `exit 1`) are not recorded because DSH treats them as plain text, not errors.
How can I see the recorded failures?
The plugin writes failures into a skill directory, typically `~/.dsh/skills/fail-log-guide/SKILL.md`. You can open that file to see the FAIL-LOG section with deduplicated, counted, and ranked failures. The skill's description is set so that the model may load it when it needs failure analysis.
Can I disable the always-on instructions to save tokens?
Yes, set `config.injectInstructions: false` in the plugin configuration. This disables the push-prevention instructions that are injected on every agent step. The pull-style capability (skill loading and failure log) remains active even without the instructions.