Skip to content

fix(chat): return legacy same-question answers per original source - #8341

Merged
loopx-agent merged 1 commit into
mainfrom
codex/related-result-review-20261108
Nov 8, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/related-result-review-20261108

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

旧消息只有普通的“未完成”答复、没有 typed unfinished_work 时,即使同一问题的另一条原消息已经核验了当前结果,原回复 worker 也无法为这条独立消息补答。

本修改在现有 native-chat / Codex provider 和 Core conversation-binding owner 中补齐一次受限结果复核:必须是同一 Session、binding、受众和完整问题文本,更早的独立请求已在旧答复之后完成并投递合格复核;Core 固定其规范记录,并独立读回旧请求的原生最终答复。每条消息使用自己的队列身份、次数与投递阶段。执行前复核来源、权限、停止、steering、队列和证据;复核仅能读取本地工作区,禁用网络,不能写入、发送、委派或重放业务。

同文消息不会相互核销,不推断缺失的业务意图或执行效果;旧复核不能继续派生旧复核。原 Turn、旧答复和未完声明保持原样。沿用现有 provider、权限配置和回复 worker,未增加 capability、监听进程或配置开关;发现阶段的同文索引仅在一次扫描内复用,实际准入和执行重新读取规范状态。配套更新双语 RFC。

验证:独立协议进程 + 原 Lark worker 用例中,base 漏补答,修复后每条原消息单独收到结果,现有产物字节不变。停止、撤权、原文变更及预约/入队崩溃恢复均通过;原恢复路径 55 项、发现与健康检查 2 项、TypeScript 62 项及 control-plane typecheck 已通过。最终提交回归 63 项和标准 premerge 均通过(11 项选择检查及全部直接门)。额外 mypy 检查存在既有错误;两个修改文件 base/head 均为相同 45 项,无新增,不宣称全库 mypy 通过。

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.

Reviewer: model_agent · GPT-6 · OpenAI · self_reported

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机 / Motivation

普通项目私聊中再次提交同一问题的用户。旧消息只有普通的未完成答复时,即使另一条原消息已有结果复核,它仍不能收到自己的补答;新路径为它单独核验并返回结果。每条原消息保留独立身份,并经原回复 worker 获得一次只读结果补答。不重新执行业务、不推断未知效果,也不关闭原未完义务或整个历史积压。真实安装采用、线上原消息送达及其余历史消息仍需分别验收。不修会让用户反复重发仍收不到对应答案;直接把另一条消息的投递记到本条,会掩盖真实缺口。

改动思路 / Approach

原回复 worker、Core 决策和 Codex 读取各守现有职责,没有第二个准入或发送 owner。本 PR 只补齐有规范同文结果证据的独立旧消息复核。更小的合法选择是复用已有结果复核,而非再造 provider、消息消费者或通用重放器。原生元数据只证明可以读旧答复,Core 再核对独立来源、前后时间、当前绑定和一次预算;原回复 worker 负责回到本条消息。

路径 结果
无合格同文证据、跨来源或时序不符 保持原请求,不准入
证据完整且原队列空闲 本条独立只读复核,核验当前产物后补答
停止、撤权、证据变化或已有尝试 保持等待或认回同一预约,不增加次数

此表解释精确 head 7b44c18 的控制流,测试证据另列。新增关联来自完整规范日志,并在预约后固定、执行前重查,不要求用户填写状态;扫描内索引不是准入 authority。

具体改动 / Changes

规范依据为 docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md,读取的是修改前提交 15467f25c322caf9c1ec6218d7315471a17a7d85 的已完成私聊结果复核合同。这里保留原安全不变量,明确新增旧请求范围,不用本 PR 改写后的规范反证自身正确。original-source-identity 已实现并由独立原消息/旧投递不变断言验证;restricted-result-review 已实现并由文件只读、禁网及未知原生效果用例验证;single-review-recovery 已实现并由预约与入队两处崩溃的同一回执采用验证。

关键代码讲解

  1. _related_result_review 只收集同 Session、完整问题及来源的规范 peer 复核;不是业务已完成判断,也不会借另一条投递核销本条。
  2. planRelatedResultReview 要求更早的 typed 原请求和晚于旧答复的已投递结果复核。跨 binding、来源、问题、时序或证据变化均拒绝;复用现有 planCompletedResultReview 的只读预算、队列及崩溃采用。
  3. completed_result_review_readback 默认仍拒绝无声明答复,仅在 Core 明确请求受限证明时读回完整最终响应。稳定性、后续 Turn 关联、未知/活动效果检查仍在;返回值不具备 effects-settled 权限。
  4. _checked_completed_result_review 在实际复核前重新读取原请求、授权、停止、队列及固定 peer 证据。新增提示把 peer 答复标作数据,仍禁止写入、发送、委派、提出保护动作或制造未完声明。

三个生产文件承载同一恢复切片,三个测试文件覆盖规范决策、原生协议及原 worker;双语 RFC 同步。共 416 行增加、26 行删除,主体测试不是新的运行时框架。新测试采用真实文件状态/队列/stdio 协议边界和合成模型/飞书 peer;原 worker 自行发现、执行、投递。旧 Turn、旧终态消息和产物字节均被独立断言保护。

对主干的风险 / Risks

最强反例是同文问题其实是不同请求,或只读补答被误当成可写重放。当前实现按独立原身份投递,时间关系、精确旧 final、只读配置和一处预算共同防止这两类错误。已有可写 owner 不会被新的复核替换;普通 typed 续办及失败命令的旧语义继续保留。恢复失败可以认回原预约,不能由本 PR 重新发业务或清次数。

PASS:精确 head 63 项 Python、62 项 TypeScript、control-plane typecheck,标准 premerge 的 6 个直接门与 11 项选择检查、双语和公开边界。相同合成输入在 base 15467f25c322caf9c1ec6218d7315471a17a7d85 的原 worker 路径会因独立旧源未补答而失败;head 通过,且产物内容与原投递不变。停止、撤权、原文变化和两类崩溃均通过。完整 fixture SHA-256 为 0ef3f735dd2872ecf6235f94bd453a97c8018ecc70690d75b829ca602a1a985f;只规范化随机 id、临时目录和时刻,不规范化结果、权限、身份关系或副作用。

补充 mypy 并未全库通过:两个修改文件的 45 项既有诊断按路径与完整错误详情逐项相同,无新增;全量传递检查仍有其他错误。它不替代已通过的必需检查,也不把旧错误称为本修复已解决。按 Goal 的 wait_for_ci=false 未查询或等待远端 CI。

语义与 CI 对齐

这是现有结果复核词汇的受限扩展。内部预约新增旧请求关联,producer 是既有 Core 准入,consumer 是同一队列与 worker;不增加人的业务意图、Actor、能力开关或 effects 权限。双语 RFC 明确新默认;未命中资格的普通来源、typed 工作及未知效果保持原合同。测试中的合成回复不能证明真实模型已经理解或线上已经送达。

我的整体评价 / Verdict

没有发现阻断问题,APPROVE 此精确 head 的完整切片。原回复 worker、Core 决策和 Codex 读取各守现有职责,没有第二个准入或发送 owner。本 PR 只补齐有规范同文结果证据的独立旧消息复核。一次预算、原身份与崩溃采用保持,原 worker 能自行接续,不要求用户重新发送问题。用户沿原私聊收到独立补答,既有渲染器和页面布局没有变化。没有新页面或渲染层修改,视觉复核不适用;线上安装采用及实际用户补答在本 PR 审阅时尚未验证。与不修、复制另条答复或直接重放相比,新增范围及维护成本有依据;保留旧预约和派发 owner,后续上线失败沿正常管理器回滚,历史未完和其他消息继续逐条验收。

English verdict: APPROVE 7b44c18; independent legacy source recovery is read-only, bounded and covered by the default-worker counterfactual, negative cases and required local checks. Real installation and delivery remain separate acceptance.

@loopx-agent
loopx-agent merged commit ecec9f4 into main Nov 8, 2026
19 of 36 checks passed
@loopx-agent
loopx-agent deleted the codex/related-result-review-20261108 branch November 8, 2026 06:04
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