dsh-auto-compact
English | 中文

Enhanced auto-compaction defaults for DeepSeek Harness.
DeepSeek Harness ships automatic context compaction (dsh-compaction-basic), but the default trigger threshold is 80% of the model's context window — too late for large-context models. This tool lowers the threshold to 75% and adds per-route policies, so history is tidied up earlier and long sessions stay responsive.
How it works
DeepSeek Harness runs one compaction-basic instance per agent preset (per session). Profile-level patches cannot reach that subtree, so this tool directly injects configuration into the compaction-basic entry of every user-installed preset under ~/.dsh/.agent-presets/.
- Default: trigger at 75% of the context window, keep the most recent 20% verbatim.
- Per-route policies:
- ChatGPT / Codex GPT-5.6 (272K context): trigger at 70%.
- OpenCode Go DeepSeek V4 (1M declared context): trigger at 65%.
- Keeps the existing summarization, retry, and safe-fallback behavior of
dsh-compaction-basic (a failed summary preserves the original history and never silently drops context).
- Manual
/compact and tool-result pruning remain available.
Installation
cd dsh-auto-compact
./install.sh
Restart DeepSeek Harness afterward. Roll back with:
./uninstall.sh
Important: Factory Presets
This tool only injects into user-installed presets under ~/.dsh/.agent-presets/. The factory presets (standard, code, cordis, minimal) ship with their own default compaction settings (80% trigger, 16% retain) and are read-only — this tool will not modify them.
If you want enhanced compaction for a factory preset:
- Copy it to your user presets directory:
cp -r /opt/homebrew/lib/node_modules/@deepseek-ai/dsh/presets/<preset-name> ~/.dsh/.agent-presets/
- Run
./install.sh again to inject the enhanced configuration.
- Select the copied preset in DSH's session setup.
What the installer does
- Finds every
agent.cordis.yml under ~/.dsh/.agent-presets/.
- Injects the policy block into the
compaction-basic entry of each preset.
- Backs up each modified file as
agent.cordis.yml.bak-auto-compact.
- Idempotent: a marker comment prevents double injection.
- Skips presets that already configure
compaction-basic themselves (merge manually in that case).
- Never touches the read-only factory presets in the DSH install directory.
Configuration
All values live in scripts/inject.mjs (the CONFIG_BLOCK). Edit them before running ./install.sh if you want different thresholds. Preview with:
node scripts/inject.mjs --dry-run
| Key |
Default |
Meaning |
thresholdRatio |
0.75 |
Trigger compaction when estimated usage reaches this fraction of the model context window |
retainRatio |
0.20 |
Keep the most recent fraction of the window verbatim |
modelPolicies |
– |
Per provider/model overrides |
Safety
- A failed summarization preserves the original history and logs a warning.
- Automatic recovery never loops indefinitely (bounded retries).
- The tool contains no secrets and no personal paths.
- Installation is fully reversible via
./uninstall.sh.
License
MIT © songoao25