Repository navigation
Releases
Releases · Leafstory/dsh-context-checkpoint
v0.4.0 — DSH 上下文检查点 · 1-2-3-4 全流程服务包(插件 + skill + 安装器)
v0.4.0 — DSH 上下文检查点 · 1-2-3-4 全流程服务包
本 Release 已合并最初的功能发布与随后的文档/术语整理 —— 不再有单独的 0.4.1。
背景:为了解决什么
为的是 DeepSeek V4.1 Flash 在 DSH 长上下文里的稳定性问题。会话一长就会出现:
- 否定自己先前的正确结论 —— 已经定下并验证过的事被重新推翻;
- 丢失关键节点 —— 走到哪一步、还差什么,说不清;
- 遗漏问题 —— 用户提过的约束与待办被漏掉;
- 幻觉率随上下文变长而升高 —— 于是要花大量时间回头纠正。
同时观察到:它在每轮对话的开头注意力最高、思考也最展开。关键状态放在上下文开头,
是模型最容易真正读进去的位置;埋在几十万 token 的历史里则相反。
所以做法是:自动总结 → 压缩 → 把总结注入回上下文开头 → 继续同一个任务。
这是工程手段,不是模型修复 —— 插件的职责只是把关键状态反复放到最有注意力的位置。
四步闭环与责任方
| 步 | 做什么 | 由谁提供 |
|---|---|---|
| ① 达限 | 每步注入真实占用条;跨档位提醒落盘 | 插件静态提示词段 |
| ② 总结 | 把项目状态写进 important_view.<task>-<session>.md |
skill context-checkpoint + 插件工具 context_compact |
| ③ 压缩 | 在下一个步骤边界用 DSH 原生压缩引擎压缩('context-overflow' 绕过阈值,不等空闲窗口) |
插件触发 + profile 启用 compaction-basic |
| ④ 注入 | 压缩后把检查点正文重新注入为静态上下文(跨代刷新) | 插件静态提示词段 |
下载哪个
context-checkpoint-service-0.4.0.zip—— 推荐。解压后一条命令安装,不需要 npm。dsh-external-context-checkpoint-0.4.0.tgz—— npm 包(npm install <tgz>),同样含 skill。
安装(目标机)
# 解压 zip 后进入目录
node install.mjs --dsh-home "<DSH_HOME>" --profile <profile>
# 先看要改什么 / 只体检 / 卸载
node install.mjs ... --dry-run
node install.mjs ... --check
node install.mjs ... --uninstall安装器做四件事(幂等,写前备份 *.context-checkpoint.bak):
插件落位 → 写 dependencies + dsh.profile.bundles → 启用 compaction-basic → 投放 skill。
装完必须重启 DSH(装配只在启动时组合)。
验收(四条)
context_status出现checkpointFresh/checkpointAgeMs/userIntentWindowMs: 900000/recentUserIntent- 同一返回里
capabilityProbe.compaction === "present"(第 ③ 步可压) - 在占用远低于 50% 时对模型说「总结一下本轮」→ 应看到
Compaction scheduled (on the user's explicit request: …),不需要任何 force - 压缩后
system/message段内换成新一代正文
(node scripts/list-events.mjs system/message --last 3 --grep "generation:")
本版包含的变化
功能
- 插件本体:占用条 /
context_status/context_compact;③ 的触发点 =agent/pre-step
步骤边界,用'context-overflow'绕过阈值走 DSH 原生压缩(不依赖空闲窗口) - 三道校验 + 一层豁免:触发门槛(窗口 50%)、执行前复核、落盘闸(检查点须 10 分钟内写过);
用户本人明说「总结 / 开始项目」时只跳过门槛,落盘闸保留(D-006) - ④ 跨代注入:检查点正文作为静态提示词段注入,每代读一次、压缩后自动换新
skill context-checkpoint随包分发(落盘纪律 + 载入协议)scripts/install.mjs一键安装器;scripts/export.mjs导出构建器(自带干净 DSH_HOME 冒烟)
文档与术语
-
README 新增「背景」一节;去掉「第三版实现,前两版都失败了」这类实现历史叙事
-
不再使用「上膛」比喻:改为 预约 / 触发门槛;英文文案与字段同步
armed → scheduled:旧 新 Compaction is armedCompaction scheduledarmedCompactions/armedTokensscheduledCompactions/scheduledTokens
协议
- 采用 MIT License(原先
package.json里写着 BSD-3-Clause 但仓库没有 LICENSE 文件,
GitHub 因此认定"无协议")—— 现在补齐正文文件,版权署名Copyright (c) 2026 Leafstory。
可直接公开
- 清掉了开发机的绝对路径与用户名:取证脚本改用
scripts/paths.mjs(环境变量优先 + 自动推断),
文档里的示例路径也换成通用写法;仓库内不含任何凭据。
验证:回归 124 项、闭环 7 项、构建 7 项校验全过;导出流程自带干净 DSH_HOME 冒烟
(安装 / 落地断言 / 幂等 / --check / 卸载)。
已知前提与坑
- 需要 profile 启用
compaction-basic:ctx.compaction在 web 平面默认被 disable,安装器会自动启用。 - DSH Desktop 会在启动时重写 profile 的
package.json,可能抹掉 bundles 条目 ——
重启后跑一次node install.mjs --check自查。 - 别两条装配路同时用(注入器 + bundle = 同一个插件装配两次)。
- 插件不自行实现压缩,用 DSH 原生引擎;提示词段内不能有动态值(会毁掉 prompt 缓存)。
安装与排障详见包内 INSTALL.md。