Skip to content

Releases

dsh-context-enhancement v0.1.12

Choose a tag to compare

@chuxindd chuxindd released this 16 Sep 01:55

版本概述

本版本调整了工具要点化的维护时机和处理边界,重点保护主 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

Choose a tag to compare

@chuxindd chuxindd released this 16 Sep 01:55

发布说明

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 状态机:
    • open
    • success
    • fallback
    • failure
    • aborted
    • repaired
  • 增加 audit 中断、丢失、损坏、写入失败和 LWW 覆盖时的恢复与诊断。
  • 增加 startup backlog 恢复,避免重启后积压事件永久等待。
  • Goal/TODO 改为 Host-owned authoritative views。
  • todo/write({ todos: [] }) 现在明确表示清空,而不是被当作无变化。
  • 增加 terminal/quarantine provenance,并对不可压缩窗口执行 fail-closed 处理。
  • 使用新的 context_enhancement_task_state_v2 clean-break 数据域。
  • Stable 状态改用插件自有固定 slot,后续 revision 使用 replacement 更新。
  • 增加 Stable 独立注入预算、token 估算、stale/fresh/blocked 元数据和账本归因。
  • 修复真实 compaction 后 Stable slot 被遮蔽时的下一轮重建。
  • fork child 改为基于 durable inheritedEventCount 的 own-events boundary 独立重建。
  • child 不再从 -1 cursor 重复处理继承前缀。
  • 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

Choose a tag to compare

@chuxindd chuxindd released this 09 Sep 01:33

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

Choose a tag to compare

@chuxindd chuxindd released this 06 Sep 12:08

0.1.6

改进

  • 完善三层上下文压缩策略:
    • 近区保留当前工作现场
    • 工具区归纳工具操作
    • 遗忘区压缩较早的对话内容
  • 压力压缩和上下文溢出恢复现在会在每次处理后重新测量上下文。
  • 溢出恢复只会在前一区域确实没有可处理内容后进入下一区域。
  • 工具摘要审计按 Session 生命周期隔离。
  • 仅完整成功的对话轮次会解除摘要重新进入压缩的等待条件。
  • 修复压缩锁、旧配置兼容和任务状态读取统计。
  • 更新当前状态面板文案和生效次数展示。

验证

  • TypeScript 类型检查通过
  • 全量测试通过:28 个测试文件、235 项测试
  • 标准构建通过
  • 发布检查通过
  • Profile 安装和 standing mount 验证通过