feat: preserve todo continuity across compression - #637
Conversation
|
ework 接单 |
[review] 已接单并完整复核 #637(todo continuity across compression)。结论:核心设计与正确性 LGTM,合并前建议补上单元测试(已写好,见文末),另有两个小项值得处理。 验证(在干净
|
|
简述这个是什么功能 并补充对应 issue |
三件事都办好了: 1. 这个功能是什么解决「压缩后 todo 状态丢失」的问题。 当客户端的 本 PR 的做法:当
2. 对应 issue已补:#639(feature issue:问题 / 方案 / 契约 / 实现)。 3. 测试(我来改,已落地到本 PR)已在 PR 分支提交并推送:commit Fixes #639 |
|
参考我名下的 opencode-acp 项目 应该对类似消息实施保护 而不是压缩后召回。 另外我理解类似保护已经存在。 todo 消息保护特殊性在于只保护最近一条即可 可能内核需要协同改动甚至改动仅仅发生在内核 |
[bot] 🏷 收到,方向明确:改成「保护」而非「压缩后召回」,对齐 opencode-acp 原语义。先确认现状,再给方案,最后是需要你拍板的点。这一轮我只做设计分析,未动代码。 1. 现状确认:保护机制已经存在(你的判断对)acp-kernel(billion-context 内联的压缩内核)已经有 opencode-acp 那套「保护而非召回」的机制:
billion-context 侧: 2. 差距:「只保护最近一条」现有机制给不了
而 todo 状态是累积快照(revision N 含当前完整状态),旧 todo 结果严格冗余,只有最新一条是 source of truth。所以「只保护最近一条」既正确又高效——但这不是上面两个机制能直接表达的。 3. 推荐方案(对齐 opencode-acp 语义)内核加一个「最近一条」保护模式 + 宿主暴露配置:
跨仓库代价(重要):按 AGENTS.md 跨仓依赖,acp-kernel 必须先发版,billion-context 才能 bump。顺序:acp-kernel 加 4. 需要你拍板
我的建议:走内核路线、一次到位(避免临时版返工),并同步把 #639 的描述从「召回」改成「保护」。你确认后我按 acp-kernel → billion-context 顺序开做。 |
|
建议增加按照工具名字的保护,而不是 compress.protectTodo, 所有配置通用化 |
|
继续 |
[bot] 🏷 继续完成——内核侧已做完,PR 已开:acp-kernel#223 本轮做了什么按 floor 14 的定调(按工具名保护、硬/软两档、配置通用化)在内核实现了「最近一条」保护: acp-kernel PR #223(open,branch
下一步(需要你操作)跨仓规则:内核必须先发版(billion-context 精确 pin + CI
本 PR 的 carrier 实现先保持原样不动,等保护方案落地后由 billion-context 侧 PR 移除。 |
Summary
todo-bootstrap-PWFCapsule onto cleanorigin/master.Validation
capsulectl sot validate --component billion-context: 0 errors, 0 warnings.npm run typecheck: PASS.npm run build: PASS.fix-78-connect-timeoutfailure reproduces on cleanorigin/master; it is outside this Capsule and outside this diff. Full CI remains the release gate.