Repository navigation
fix(chat): recover settled work behind later original requests - #8191
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
动机
历史请求已明确报告剩余工作且效果已结算,但在不同的新问题完成后不再满足 latest-native,原 worker 永久搁置。对同一原来源/Core/原生协议/回复合成流程做反验:base 留在原 Turn,head 只补剩余效果一次并验证原来源最终回复。
规范依据:docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md,不可变版本 a9485073f219a416689f62824c5117269289e596。逐项核对 NW-SOURCE(原来源/权限/停止)、NW-ONCE(原队列及一次 work-1)、NW-SETTLED(完整稳定库存和后台效果)与 NW-LATEST。后者是本次维护者修复要求下有意修订的安全假设,不能宣称原样满足;替代条件是所有后续原生 Turn 均有规范 Core 关联、库存稳定且无未知/未结束效果,外来输入保持等待。修改后的 RFC 不是独立验收依据。
已绑定来源、workspace_write 的普通私有项目 Codex 会话及其原 Lark 回复 worker。
先保留已完成效果,再处理不同的新问题;base 不接续旧工作,head 只追加剩余效果一次并核验原来源终态回复。
不新增消费者、权限、模型路由、重试额度或冷客户端后台证明;不认证历史真实业务完成。
完整原来源/Core/原生协议/回复 provider 合成旅程的产物 first+remaining 恰好一次;原失败/部分回复字节不变。
冷 owner 丢失、旧非结构化部分回复和未知效果继续等待;真实历史补办须另验原 Bot 实际执行与原消息读回。
改动思路
沿用原 native_chat IO、TypeScript 准入、Session 队列和原消息回复。Python 提供原始库存和 Core 关联;TypeScript 决定是否允许一次剩余工作。摘要不授予权限,不新增消费者、调度器或额度。
具体改动
completed_work_readback 验证原请求及全部后续相关原生库存,返回摘要。planUnfinishedWork 加入后续同内容提交和排队新输入的拒绝条件。prepare_continuation_input 在派发前再次比较完整证明;库存内容变化即在 turn/start 前停止。原 Turn、部分回复和已执行效果保留。重启只采用已受理的确定性身份,续办失败不换族重获预算。
21 项原 worker 旅程分组通过;135 项历史/绑定回归、57 项 TypeScript 决策、类型检查、Ruff 与标准 premerge 均通过。标准 premerge 为 6 项直接检查、11 项选定检查,失败/警告/既有 advisory 均为 0。同一冻结最终 harness 在 a9485073f219a416689f62824c5117269289e596 预期失败,在 dbf8a97753d262e4f1085e235c6dcaf5407082f9 通过;实际断言包括产物恰好一次、旧 Turn 字节不变、原消息终态验证与重复扫描不再派发。原生/model/provider 为合成,不代表真实模型质量或历史业务已完成。
对主干的风险
最大风险是旧任务在后续输入改变状态后错误继续。已核对同内容提交、Stop、编辑、撤权、外来原生输入、失败/未知/活动效果、后台进程、冷 owner 及受理后库存改变的拒绝路径。已有非结构化部分回复不会从措辞推导续办授权。冷客户端仍不能证明另一个进程没有后台效果;这类等待没有被隐藏。观察增加有界只读 IO,未宣称整体性能改善。正常回滚只回退代码,不回退业务数据或清除已消耗的 work-1。
我的整体评价
这是原请求自动接续的一项完整、有界修复,已验证的代码交付范围足够清楚;真实历史补办、原消息送达和原生 owner 丢失等剩余验收继续保留。未发现阻断本精确 head 的问题。仓库 CI 等待按当前 Goal 策略关闭;没有查询或等待 CI 作为合并前置。审查者声明:GPT-6 / OpenAI,self_reported,宿主身份查询为 session_not_found。
Extend the existing evidence path rather than add orchestration.
Bounded ordinary private project history; cold owner and untyped reports still held.
Reviewer: model_agent | GPT-6 | OpenAI | self_reported
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
English verdict: APPROVE — bounded original-source continuation with complete correlated inventory and dispatch revalidation; historical business closure and unavailable native ownership remain separate acceptance boundaries.
原请求已明确报告剩余工作且效果已结算后,用户继续问别的问题会使它永远不再满足 latest-native 检查,原回复 worker 因而无法补完。本变更让原 worker 在完整、稳定且与规范 Core Turn 对应的原生历史下,沿原 Session 队列完成一次剩余工作。
复用原
unfinished_work协议、work-1次数、来源/授权检查和最终回复阶段。后续同内容提交、新输入排队、Stop、来源变化、撤权、外来原生输入、未知或失败效果均阻止新增执行;库存摘要在派发前再次核对。原失败、部分回复和已执行效果保留。没有新增消费者、调度器或权限。验证:
原生/provider 为合成验证,不等于历史业务已补办。冷客户端仍不能证明另一个进程没有后台效果,旧非结构化部分回复也不会从措辞推导续办授权。这些边界继续保留。