Skip to content

Releases: 2849236173/tiered-compaction

0.4.1 正式版

Choose a tag to compare

@2849236173 2849236173 released this 01 Nov 10:53

档位:正式版 / 稳定版 —— 包含 0.4.1-beta.1 的空闲误报修复,并新增摘要进度显示。自动化测试全部通过(364 项,363 通过,1 项需真实会话的校验按设计跳过)。

新增

  • 摘要进度:第 4 层摘要一次常要 45 秒到 2 分钟,旧版这期间悬浮窗没有任何变化。现在状态接口新增 summarizingSince 字段,悬浮窗和设置页显示「正在摘要… Ns」;摘要期间不再报「自动压缩未运行」。摘要成功、失败或取消后都会清掉。

文档

  • README 重写:只保留安装、启用四层、悬浮窗说明、配置和已知限制,首屏加入悬浮窗截图。

v0.3.1 正式版

Choose a tag to compare

@2849236173 2849236173 released this 28 Oct 12:17

正式版(稳定版)

测试完全通过(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 — 装完即生效 + 会话损坏修复

Choose a tag to compare

@2849236173 2849236173 released this 28 Oct 05:08

装完即生效 + 会话损坏修复

变更

  • 默认接管压缩: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-compaction

详见 README 与 CHANGELOG。

v0.2.0 — 四层递进压缩管线

Choose a tag to compare

@2849236173 2849236173 released this 28 Oct 02:31

首个公开版本

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 中自动出现插件条目

详见 README 与 CHANGELOG。