DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
M

manualcompact-billion

Manualcompact Billion

Keep DSH's native /compact (manual compaction) while billion-context keeps automatic compression; the compaction backend stays mounted but pinned to auto: false.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:k-ying/manualcompact-billion#01b3cf4a90f50041f864b26e24467155672f6e0d
READMECompatibilityVersions

Compatibility and provenance

Manualcompact Billion is published as manualcompact-billion and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
10/30/2026

Versions

0.1.0stable
10/30/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/30/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in memory-context.

Experimental Session Search@deepseek-ai/dsh-experimental-session-searchGive Agents tools to search and read earlier sessions from the current workspace.Hindsight Coding Agents@vectorize-io/hindsight-coding-agentsReflect-only Hindsight long-term memory for coding agents (harness-pluggable: opencode, …), with automatic background ingestion (no setup CLI).Contextdsh-contextA DeepSeek Harness plugin for context insight and management, with context dashboard and context command, for understanding how the context is made of, and how it evolves.Memory Plugin@openviking/dsh-memory-pluginOpenViking memory and context bundle for DeepSeek Harness

README

manualcompact-billion

让 dsh 的原生手动压缩 /compact 回来,同时不动 billion-context 的自动压缩。

它解决什么

装了 billion-context 之后,dsh 里的 /compact 会消失。原因不是 bug:billion 带了一个 bili-compaction-gate 插件,它在配置解析阶段把两个包改成 disabled: true:

  • @deepseek-ai/dsh-compaction-basic(压缩后端)
  • @deepseek-ai/dsh-command-compact(/compact 命令)

于是 dsh 既没有自动压缩,也没有手动压缩——而 billion 自己的压缩方案在部分场景(非标准线路、拦截没生效)下并不工作,你就落到「两边都没有」的境地。

这个插件把这两条重新打开,并且把后端钉成 auto: false:只手动,不自动。billion 继续管它的自动压缩,两边互不抢。

原理

dsh 的配置解析是一条 waterfall(洋葱模型):每个监听者调用 next() 拿到下游结果,还能再改。billion 的 gate 挂在链上做禁用。

本插件用 { global: true, prepend: true } 注册在最外层:

我们的钩子(最外层)
  └─ billion 的 gate(禁用两个包)
       └─ 基础配置(两个包原本是启用的)
  ← gate 返回「已禁用」
← 我们收到「已禁用」,改回「启用 + auto:false」

因为最外层的返回值才是最终结果,所以我们的修改生效,而 gate 自己完全不知道。

它只改三种值:两个 disabled: true → false,一个 config.auto = false。不碰 billion 的包、代理、gate,也不注册任何服务。

一个刻意的限制:只在被禁用时才动手

如果配置里没有任何被 gate 禁用的行(比如你哪天卸了 billion),插件直接原样返回,连 auto 都不碰。这样它不会在你卸掉 billion 之后,悄悄把你的自动压缩关掉。

安装

方式一:从 GitHub 一键安装(推荐)

dsh plugin --profile web add github:k-ying/manualcompact-billion

web 是 dsh 的默认 profile,绝大多数人用的就是它。dsh 会把 github:owner/repo 转成真实 Git 地址拉取安装,cordis.patch.yml 随包自动挂载,不用手改配置。

先确认你该装到哪个 profile

dsh 的插件按 profile 隔离,装错 profile 等于没装。三个办法确认:

# 1) 看这台机器上有哪些 profile
ls ~/.dsh/profiles

# 2) 看某个 profile 里已经装了什么
dsh plugin --profile web list

# 3) 看这个 profile 的插件配置文件在哪(装完就写在这里)
ls ~/.dsh/profiles/web/cordis.patch.yml

对照着选:

你的情况profile 名配置文件
命令行 dsh,或浏览器打开的 Web UIweb(默认)~/.dsh/profiles/web/cordis.patch.yml
桌面版应用(Tauri 打包的那个)一般是 tauri~/.dsh/profiles/tauri/cordis.patch.yml
自己建过别的你起的名字~/.dsh/profiles/<名字>/cordis.patch.yml

不确定的话先跑 ls ~/.dsh/profiles:里面没有 tauri 目录,就说明你用的是 web。桌面版对应:

dsh plugin --profile tauri add github:k-ying/manualcompact-billion

想锁定版本可以带 tag:

dsh plugin --profile web add github:k-ying/manualcompact-billion#v0.1.0

方式二:本地目录安装

dsh plugin --profile web add ~/Documents/AI/manualcompact-billion

(把 web 换成你自己的 profile 名即可。)

方式三:手写 patch 条目

不想走插件管理器,也可以在 profile 的 cordis.patch.yml 里手写一条:

- id: manualcompact-billion
  name: 'file:///path/to/manualcompact-billion/index.js'

装完都要做的一步

完全退出 dsh 再打开(不是关窗口)。配置是启动时算出来的,热改不会重新走一遍 waterfall。

验证

重启后,随便开一个会话:

  • 敲 /compact,应该能压(或回「没有可压缩的历史」——那也说明命令活着)。
  • 失败的样子:命令面板里没有 /compact,或报「没有压缩后端」。

日志里搜 manualcompact-billion: 会看到一行自检:

manualcompact-billion: native compaction restored (command×1, basic×1, groups×2, auto=off)

没这行,说明插件没加载,或者配置里根本没有被禁用的行。

开关

环境变量作用
MANUALCOMPACT_OFF=1插件完全让位,什么都不改
MANUALCOMPACT_ALLOW_AUTO=1不钉 auto: false,保留你原来的自动压缩设置(会和 billion 抢历史,不建议)

卸载

dsh plugin --profile tauri remove manualcompact-billion

重启即可。没有任何持久副作用:配置是每次启动时算出来的,插件不在就恢复原样。

风险与限制

  • 它逆着上游的假设走。 billion 的设计是「我接管了就不许宿主压」,没有「接管失败时放行」这一档。本插件补的正是这个缺口,但上游不保证兼容。
  • billion 真有压缩动作时,你手动 /compact 会让会话历史变化,billion 下一次请求发现增量对不上,会触发一次全量 resync:多一个冷请求、缓存命中掉一格。是费用和速度的损失,不是数据损坏。
  • 它不解决「billion 能不能压某个供应商」的问题。Command Code 那类非标准线路该不压还是不压。
  • 上游改包名或事件名时插件会静默失效(/compact 又消失),但不会弄坏 dsh。失效时把 BASIC_PACKAGE / COMMAND_PACKAGE 改一下即可。

开发

npm test

14 条用例,覆盖:配置转换、嵌套 group、幂等、不改原对象、以及用假 ctx 模拟 waterfall 验证「prepend 确实压在 gate 外层」。