Repository navigation
Releases: 2849236173/tiered-compaction
Releases · 2849236173/tiered-compaction
Release list
0.4.1 正式版
档位:正式版 / 稳定版 —— 包含 0.4.1-beta.1 的空闲误报修复,并新增摘要进度显示。自动化测试全部通过(364 项,363 通过,1 项需真实会话的校验按设计跳过)。
新增
- 摘要进度:第 4 层摘要一次常要 45 秒到 2 分钟,旧版这期间悬浮窗没有任何变化。现在状态接口新增
summarizingSince字段,悬浮窗和设置页显示「正在摘要… Ns」;摘要期间不再报「自动压缩未运行」。摘要成功、失败或取消后都会清掉。
文档
- README 重写:只保留安装、启用四层、悬浮窗说明、配置和已知限制,首屏加入悬浮窗截图。
v0.3.1 正式版
正式版(稳定版)
测试完全通过(224 条:223 绿 + 1 按需跳过)+ 真实宿主验证通过。
修复
- restoreSpilled 死代码 → tiered_restore 工具:模型可按存档路径 + SHA-256 校验读回原文,校验不通过一律抛错。此前全库零调用点,「原文可读回」只靠通用 read。
- 阈值夹取留痕:外部插件直接写 engine.config.thresholdRatio 时,夹取会打一条去重告警(此前 65% 滑块行程是死区且零反馈)。
- 摘要改道留痕:发摘要前记录实际目标 provider/model(purpose='compaction' 是公开钩子,会被路由插件改派)。
- preset 共存检测:加载时枚举 preset,自带 compaction 组的都告警(realm 内另有引擎时,本插件四层不会生效)。
- 真实宿主两项启动期问题:工具注册补 output 字段(此前抛 TypeError 卡死 boot);preset 探测加 1500ms 截止时间(此前与激活互锁)。
变更
- README 补「更新到新版本」章节:add 不是升级命令,pnpm 把 commit 写进 lockfile,正确命令是 update。
升级方式
dsh plugin --profile desktop update dsh-tiered-compaction升级后必须完全退出并重启 DSH。
v0.3.0 — 装完即生效 + 会话损坏修复
装完即生效 + 会话损坏修复
变更
- 默认接管压缩:
enabled默认值从false改为true。装上就是启用的,要与官方 basic 并存时才需要显式关闭。 - patch 自动停用 basic:插件自带的
cordis.patch.yml现在同时做两件事——停用dsh-compaction-basic(让出compaction服务位)与启用自己。此前只插入一个关闭状态的自己,用户必须手工改两处才能用。 - 存档目录默认值:
archiveDir默认~/.dsh/tiered-archive,自动创建。此前不配置会整层静默跳过第 1、2 层。
修复
- 写出的会话文件会损坏,下次加载报
compaction turn must be a non-negative safe integer。
compaction/start与compaction/end的data里缺turn字段。宿主 v4 会话格式要求该字段必须是非负安全整数,且等于当前打开的 turn。缺失时写入不报错,读取时才判定会话损坏,整个群/会话的历史因此加载失败。
修法:新增openTurnOf(session)——从事件流尾部反向查找最近的turn/start取turn值,写进两条 compaction 事件的data。
已损坏的旧会话可用docs/修复/fix-compaction-turn.mjs补字段修复,用法见 docs/修复/README.md。 - 落盘预览预算对齐官方 pruner:上限从 1500 提到 5120 字符,头尾比从 1:2 改为 4:1。
- 纯空白摘要拒绝提交。
- 选区包含 system 头节点时不再重复投影。
- 摘要 token 估算不再误拒正常摘要。
安装
# 桌面端
dsh plugin --profile desktop add "https://github.com/2849236173/tiered-compaction/releases/download/v0.3.0/dsh-tiered-compaction-0.3.0.tgz"
# Web 模式
dsh plugin --profile web add "https://github.com/2849236173/tiered-compaction/releases/download/v0.3.0/dsh-tiered-compaction-0.3.0.tgz"
# 或直接从仓库装(跟随 main)
dsh plugin --profile desktop add "github:2849236173/tiered-compaction"
<profile>是 DSH 的配置档案名,对应C:\Users\<你>\.dsh\profiles\<名字>\。日常用desktop,Web 模式用web。
卸载
装卸即可恢复官方压缩(patch 会自动撤销对 basic 的停用):
dsh plugin --profile desktop remove dsh-tiered-compactionv0.2.0 — 四层递进压缩管线
首个公开版本
DSH 分层上下文压缩插件 —— 用「四层递进」替代「一步摘要」。
核心特性
- 四层管线:无损折叠 → 落盘 → 软压力 → 有损摘要。前三层零 LLM 成本,只有真到阈值才动用一次带预算预留的摘要调用。
- 保真三原则:每层留恢复机制、被取代引用记谱系、压缩系统自带熔断器与仲裁器。
- 宿主契约对齐:实现
compactNow/compactIfNeeded/compactRegion三入口与summarize覆写,返回形状与官方 basic 逐字段一致。 - 槽位探测与降级:construction-catch 探测
compaction服务位,被占时自动降级为「仅第 1-2 层」旁路模式,不抢不炸。
先搞清楚 <profile> 是什么
<profile> 是 DSH 的配置档案名 —— 一套独立隔离的配置实例,磁盘上对应一个文件夹:
C:\Users\<你>\.dsh\profiles\
├── desktop\ ← 桌面端在用的(日常跑 Bot 就是它)
├── web\ ← Web 模式用的
├── m6h\ ← 沙箱示例(自己起的测试用)
└── ...
每个 profile 有各自独立的 package.json、cordis.patch.yml、node_modules,互不干扰:往沙箱装插件,桌面端一点都不会变。
装到哪一个,就把 --profile 换成那个名字:
| 装到哪 | 命令里的 --profile |
|---|---|
| 桌面端(日常使用) | --profile desktop |
| Web 模式 | --profile web |
| 先建沙箱试水 | --profile tc-test(名字随便起,但要先创建) |
安装
方式一:从本 Release 的 tarball 装(版本可锁定,推荐)
下载下方 dsh-tiered-compaction-0.2.0.tgz,然后:
# 桌面端
dsh plugin --profile desktop add "C:\下载路径\dsh-tiered-compaction-0.2.0.tgz"
# Web 模式
dsh plugin --profile web add "C:\下载路径\dsh-tiered-compaction-0.2.0.tgz"方式二:直接从仓库装(跟随 main 分支最新代码)
# 桌面端
dsh plugin --profile desktop add "github:2849236173/tiered-compaction"
# Web 模式
dsh plugin --profile web add "github:2849236173/tiered-compaction"方式三:先建沙箱再装(不动现有环境)
dsh --profile tc-test --from-default-profile headless --dump-config
dsh plugin --profile tc-test add "github:2849236173/tiered-compaction"装完插件自带的
cordis.patch.yml会自动挂载,enabled默认false(仅注册自检服务,不影响任何现有压缩行为),无需手工加 patch。
验证
- 入口可加载:
npm run check✅ - 测试:
npm test→ 209 通过 / 210(0 失败,1 跳过) - 纯 ESM,无需构建链
github:简写安装已实测:pnpm 10.5s 装完,文件齐全,dump-config中自动出现插件条目