dshbase

Plugin directory / Knowledge / dsh-plugin-anti-rot

dsh-plugin-anti-rot

Verified · install-tested on dsh orangelightening

✓ Actively maintained 2 contributors

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
0Open issues
—Language
2026-08-18Last push
Cross-platformPlatform

What it does

DeepSeek Harness plugin: compresses verbose tool error payloads before they reach model context

✅
Our take
Works — verified, early-stage project

DeepSeek Harness plugin: compresses verbose tool error payloads before they reach model context It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-plugin-anti-rot

A DeepSeek Harness plugin
developed to remove a common source of context rot in long-running agent
sessions: verbose tool error payloads piling up in the context window. When a
child process dies mid-traceback, its raw stack dump would otherwise spend the
whole error — often dozens of noise lines — against the session's context
budget, and repeated failures compound over hours of work. This plugin
compresses those payloads before they reach model context and the session log. A failed call's text is reduced to its first maxLines message
lines, indented at … stack-frame lines are dropped, and an elision marker names
what was removed:

Error: boom
[…anti-rot: dropped 8 stack-frame lines, omitted 0 of 8 message lines…]

How it works

The plugin hooks the tools/post-execute waterfall and rewrites error text in
place. It recognizes two failure signals and nothing else:

  • an isError result (infrastructure failures — spawn errors, aborts), or
  • a trailing non-zero [exit code: N] marker per the shell tools' shared
    rendering contract (failing commands are model-interpreted SUCCESS results,
    so the marker is the only failing-command signal).

A clean exit leaves the result untouched. The exit marker is always re-appended
as the final line of a compressed payload, because the model is instructed to
check it and the terminal UI parses it from the end of the text.

Bounding oversized successful text is a different concern, owned by
@deepseek-ai/dsh-spill-policy; both plugins delegate through next() and
compose.

Install

From a checkout of this repository:

pnpm dsh plugin --profile web add /path/to/dsh-plugin-anti-rot

Or run it transiently with an overlay:

pnpm dsh web --patch /path/to/dsh-plugin-anti-rot/overlay.yml

Configuration

Field Type Description
maxLines number Maximum message lines kept in a compressed error payload. Must be a positive integer; load fails loudly otherwise.

Example entry in cordis.patch.yml:

- insert:
    - id: anti-rot
      name: dsh-plugin-anti-rot
      config:
        maxLines: 15

Development

npm install
npm run build                                        # tsc → lib/
node --import tsx/esm tests/anti-rot.smoke.ts        # keyless smoke tests
npx tsc -p tsconfig.json                             # strict typecheck

License

MIT © Orangelightening

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-plugin-anti-rot for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:orangelightening/dsh-plugin-anti-rot

Headless (CLI) profile:

dsh plugin --profile headless add github:orangelightening/dsh-plugin-anti-rot

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Knowledge

Browse all 7819 plugins →