Repository navigation
Releases
Releases · chuxindd/dsh-context-enhancement
dsh-context-enhancement v0.1.12
版本概述
本版本调整了工具要点化的维护时机和处理边界,重点保护主 Agent 请求的上下文缓存。
本版本将工具维护从早期的 40% 水位统一调整为 70%,并要求在一次维护流程返回前,尽量完成本轮所有安全可用的工具候选。
变更内容
统一 70% 工具维护水位
- 工具要点化不再在 40% 水位提前执行。
- 默认统一使用 70% maintenance waterline。
- 70% 以下:
- 不调用工具摘要辅助模型;
- 不执行工具摘要 replacement;
- 不修改主对话 surface。
- 旧的
toolMaintenanceRatio配置保留为兼容别名,但必须与统一维护水位相等。 - 旧配置中的
toolMaintenanceRatio: 0.4会明确拒绝,避免无意恢复早期压缩行为。
一次维护流程内尽量完成本轮候选
达到 70% 后:
- 在维护入口建立一次候选快照;
- 不在每个 replacement 后重新选择下一批候选;
- 尽量在当前
compactIfNeeded/agent/pre-step返回前处理完快照中的安全候选; - 多个工具摘要辅助请求可以在同一维护流程内依次执行;
- 多个 surface replacement 可以在同一维护流程内完成;
- 下一次主 Agent 请求只能看到本轮维护完成后的最终 surface;
- 不要求或伪造 DSH 底层多范围原子事务。
这里的“一次性”是指:
相对于主 Agent 请求,
本轮工具维护集中发生在下一次主请求之前。
并不表示:
- 多个工具组共用一次摘要模型请求;
- DSH 产生单个原子 surface event;
- 所有 replacement 只增加一次 generation。
明确的安全停止条件
当本轮维护无法继续时,系统会记录明确原因,包括:
- 候选快照耗尽;
AbortSignal取消;- invocation token budget 用尽;
- invocation deadline 到达;
- envelope/input budget 限制;
- generation conflict;
- provider 或解析失败;
- runaway group fence。
默认的 maxGroupsPerInvocation = 64 是防止失控的安全上限,不是正常情况下的旧式 maxGroupsPerPass=2 截断。如果超过该上限,系统会明确记录 group-fence,而不会伪装成全部候选已完成。
Abort 和失败处理
- 每个工具组启动前检查取消信号;
- 已启动并成功落地的 replacement 不回滚;
- 取消后未启动的候选不写虚假 audit;
- 取消后未启动的候选不消耗 attempt budget;
- 单个工具组摘要失败不会阻塞后续安全候选;
- 后续候选仍会继续尝试并分别记录结果。
修复统一旧头下的确定性裁剪
统一 70% 维护改为使用统一旧头后,修复了候选集合遗漏问题:
- 所有原始 tool result 都进入确定性裁剪候选集;
olderRange内使用普通阈值裁剪;- retained recent tail 继续使用显式 hard-limit 规则;
- recent 内容不会因为普通旧头裁剪规则被误改;
- tool-pruned replacement 继续携带完整 provenance。
缓存行为说明
本版本针对的是主 Agent 请求之间的 surface 变化频率:
主 Agent 请求 N
→ 工具摘要辅助请求若干
→ 本轮 replacement 集中完成
→ compactIfNeeded 返回
→ 主 Agent 请求 N+1
工具摘要辅助请求使用独立的 purpose: compaction 路径,不包含完整主对话前缀,因此多个摘要辅助请求不等同于多次主对话缓存失效。
本版本减少的是:
主请求 N 看到部分处理后的 surface
主请求 N+1 又看到另一部分处理后的 surface
主请求 N+2 再看到下一部分处理后的 surface
变为:
主请求 N 保持原 surface
一次维护集中处理
主请求 N+1 看到最终 surface
注意:provider 的 cache TTL、cache block、淘汰策略和最短可缓存前缀仍由 provider 管理,插件无法完全从本地实现推导。
验证结果
70% maintenance 专项:通过
unified prune 专项:通过
B3 pressure 回归:通过
B6 provenance/audit 回归:通过
B7 fork/bootstrap 回归:通过
typecheck:通过
artifact parity:通过
全量测试:62 files / 561 tests passed
dsh-context-enhancement v0.1.11
发布说明
v0.1.11 完成了长会话上下文增强链路的系统性修复与构建产物同步,覆盖 pressure 压缩、任务状态持久化、Stable 注入、工具摘要恢复、fork/resume 生命周期以及 artifact parity。
新增与改进
- 增加 pressure 压缩的安全预算计算、退出线、批次上限和净释放账本。
- 增加 low-yield 双重判定,避免低收益压缩导致无效循环。
- 增加 same-pass replacement 排除和历史 checkpoint reentry 控制。
- 增加工具摘要与工具结果裁剪的 Session provenance。
- replacement provenance 支持
sourceEventSeqs、coveredSeqs、工具组身份、generation 和 digest 校验。 - provenance 缺失、损坏、外来或冲突时统一 fail closed,不再误判为原始 tool result。
- 增加工具摘要 audit 状态机:
opensuccessfallbackfailureabortedrepaired
- 增加 audit 中断、丢失、损坏、写入失败和 LWW 覆盖时的恢复与诊断。
- 增加 startup backlog 恢复,避免重启后积压事件永久等待。
- Goal/TODO 改为 Host-owned authoritative views。
todo/write({ todos: [] })现在明确表示清空,而不是被当作无变化。- 增加 terminal/quarantine provenance,并对不可压缩窗口执行 fail-closed 处理。
- 使用新的
context_enhancement_task_state_v2clean-break 数据域。 - Stable 状态改用插件自有固定 slot,后续 revision 使用 replacement 更新。
- 增加 Stable 独立注入预算、token 估算、stale/fresh/blocked 元数据和账本归因。
- 修复真实 compaction 后 Stable slot 被遮蔽时的下一轮重建。
- fork child 改为基于 durable
inheritedEventCount的 own-events boundary 独立重建。 - child 不再从
-1cursor 重复处理继承前缀。 - parent 与 child 的 cursor、Stable slot、terminal 状态和 audit ownership 相互隔离。
- 增加构建前
lib/清理,避免旧 chunk 被错误打入发布包。 - 修复 client bundle Loader id 的构建顺序依赖。
- 增加 artifact identity、workspace
lib/、tgz 和安装副本之间的 parity 校验。 - 增加构建确定性检查和隔离 profile 安装验证。
dsh-context-enhancement 0.1.10
0.1.10 变更
修复
- 已提交任务摘要支持带修订控制的编辑:保存持久化为新的摘要修订(Host 持久化),并实时刷新投影页面。
- 将 0.1.6 中已移除的头部弹层里的四项 contextual 能力状态,移入上下文视图、置于实时任务状态摘要上方。
- 任务状态显示区分「已提交的稳定修订」与「请求参与」,不再把每次请求都呈现为成功的保存或读取。
- 上下文视图重构为响应式、跟随主题的页面:收敛的状态头部、摘要卡片,以及居中的加载 / 错误 / 空状态。
- 发布包内补齐 README banner 资源,registry 与 tarball 内文档不再出现挂图。
- 移除上下文视图文案中尚未实现的编辑与写回承诺。
0.1.8 变更
修复
- 任务状态更新改为复用每个 Session 最近一次会话的 provider 与 model,不再总是走配置的兜底路由。
- 上下文视图区分「contextual 会话等待首个已提交摘要」与「会话未使用 contextual 预设」两种状态。
升级说明
- 从 v0.1.6 升级无需迁移步骤;重新执行上面的安装命令并重启
dsh --profile web即可。 - 完整历史见 CHANGELOG.md。
dsh-context-enhancement 0.1.6
0.1.6
改进
- 完善三层上下文压缩策略:
- 近区保留当前工作现场
- 工具区归纳工具操作
- 遗忘区压缩较早的对话内容
- 压力压缩和上下文溢出恢复现在会在每次处理后重新测量上下文。
- 溢出恢复只会在前一区域确实没有可处理内容后进入下一区域。
- 工具摘要审计按 Session 生命周期隔离。
- 仅完整成功的对话轮次会解除摘要重新进入压缩的等待条件。
- 修复压缩锁、旧配置兼容和任务状态读取统计。
- 更新当前状态面板文案和生效次数展示。
验证
- TypeScript 类型检查通过
- 全量测试通过:28 个测试文件、235 项测试
- 标准构建通过
- 发布检查通过
- Profile 安装和 standing mount 验证通过