Skip to content

fix(chat): recover settled work behind later original requests - #8191

Merged
loopx-agent merged 2 commits into
mainfrom
codex/historical-unfinished-recovery-20261106
Nov 6, 2026
Merged

loopx-agent merged 2 commits into
mainfrom
codex/historical-unfinished-recovery-20261106

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

原请求已明确报告剩余工作且效果已结算后,用户继续问别的问题会使它永远不再满足 latest-native 检查,原回复 worker 因而无法补完。本变更让原 worker 在完整、稳定且与规范 Core Turn 对应的原生历史下,沿原 Session 队列完成一次剩余工作。

复用原 unfinished_work 协议、work-1 次数、来源/授权检查和最终回复阶段。后续同内容提交、新输入排队、Stop、来源变化、撤权、外来原生输入、未知或失败效果均阻止新增执行;库存摘要在派发前再次核对。原失败、部分回复和已执行效果保留。没有新增消费者、调度器或权限。

验证:

  • 同一原来源/Core/原生协议/飞书回复合成流程:旧实现遇到后续不同请求仍搁置,新实现只补剩余效果一次,并验证原来源完整回复。
  • 21 项原 worker 流程用例分组通过,覆盖重复提交、停止、撤权、后台效果、原生 owner 丢失、受理中断及派发前库存变化;22 项原生读回、57 项 TypeScript 决策验证通过。
  • Ruff、控制面 TypeScript 类型检查及双语 RFC 检查通过;标准 premerge 的 6 项直接检查和 11 项选定检查均通过,零失败/警告/advisory;135 项历史与绑定回归通过。

原生/provider 为合成验证,不等于历史业务已补办。冷客户端仍不能证明另一个进程没有后台效果,旧非结构化部分回复也不会从措辞推导续办授权。这些边界继续保留。

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 loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

动机

历史请求已明确报告剩余工作且效果已结算,但在不同的新问题完成后不再满足 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.

@loopx-agent
loopx-agent merged commit d0985c3 into main Nov 6, 2026
26 of 40 checks passed
@loopx-agent
loopx-agent deleted the codex/historical-unfinished-recovery-20261106 branch November 6, 2026 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant