fix(review): separate code approval from CI completion - #5537
Conversation
Record the design decision for stopping one delegated operation: the execution's own canonical lease release is the only fence, drain is an observation rather than a settlement condition, and hard_lease authority is required. The entry measures why #5308 could not converge (six independently written settlement facts) and what main already proves (#5436, #5466 and the real revocation test), so the implementation PR has an accepted specification to be reviewed against. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
* refactor(chat): keep Goal ownership transport in presentation Signed-off-by: jackie-cqz <2557911191@qq.com> * test(ci): qualify current catalog and focused probe fixtures Signed-off-by: jackie-cqz <2557911191@qq.com> * test(ci): select admitted replan work and register linked digests Signed-off-by: jackie-cqz <2557911191@qq.com> --------- Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
The rebase onto main moved _lineage into codex_sessions.py, which keeps the selected_turn_todo lookup, so codex_cli.py no longer imports it. Behavior is unchanged; this only satisfies the required Ruff check. Signed-off-by: huangruiteng <huangrt01@163.com>
…receipts fix(subagents): reconcile native Codex host events with Turns
… ledger sources Signed-off-by: jackie-cqz <2557911191@qq.com>
…dback Signed-off-by: jackie-cqz <2557911191@qq.com>
…livery boundaries Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
Signed-off-by: jackie-cqz <2557911191@qq.com>
…ence feat(research): execute public GitHub evidence with auditable downstream readback
Contract 8 promised drain within about thirty-six seconds of the release. The existing supervisor meets that only on its nominal path: a renewal in flight finishes on its own clock (each lease command may run 60 seconds and a lost reply is retried once), so slow or lost authority replies delay cancellation until the last proven expiry, at most one lease TTL after the release. State that boundary in both languages, keep revoked and drained distinct, and list the real-process qualification the implementation PR owes: the healthy revocation control, a release during an in-flight renewal with a long TTL and a delayed reply, and lost authority replies. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
…ients Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
…y-1004 fix(collaboration): default trusted sources to local registered Agents
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.
Exact head: 851e915867057356ac596d8d6e08283389369c97 · actual latest-main merge base: 6a172f699653a11c5a4dad578e244fe535013c4c
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
评审者需要判断当前提交是否解决问题,并把代码结论与远端检查排队状态分别记录。
此前即使真实入口和负例已独立验证,评审指令仍要求等待所有 CI 终结,导致仅因排队就要求修改代码;现在充分的当前证据可以支持批准,缺少关键验证仍会阻止批准。
本次完整六文件改动已通过原生评审 CLI 正反例、354 项测试和 17 项风险选择检查;代码结论不再被单纯排队或未知历史原因自动否决。
本 PR 不增加合并权限、不更改 CI 等待配置默认值、不取消关键验证,也不把历史失败解释成已经修复。
改动思路
保留原有评审能力作为唯一规则 owner:原生 packet 生成审查契约,评审者执行并记录证据,原来的 result checker 检查结构化声明,另一个 merge-readiness 入口检查合并条件。这里修复的是“最终 CI 才能下代码结论”的错误指令,没有创建宽松分类器、项目例外或第二份决策逻辑。未知历史原因仍可记录;当前证据是否充分由实际路径和完整运行集判断,单独挑选一次绿色重跑不能覆盖当前间歇故障。
具体改动
没有找到要求全部 CI 终结后才批准代码的独立已接受书面规格。以修复前结构化检查器、配置与合并权限边界及已复现的错误结论作为验收基础;本次改动文档是待审行为说明,不拿它自证正确。实际 base-to-head 为六文件 +206/-9:一个契约 owner、README 与托管 skill,以及三处持久验证。远端缓存 base 展示的旧主干历史不是本次新增功能:最新 main 已是本 head 的祖先,合并增量只有这六文件。
关键代码讲解
VALIDATION_FAILURE_ATTRIBUTION 增加现有证据字段里的 history scope,要求保留旧记录并解释完整当前覆盖,不声称旧原因已修复。build_review_execution_contract 明确 required 表示决定代码结论所需证据;远端 pending 只有在相关不变量独立成立时才是非必需诊断,唯一关键验证尚未执行时仍保持 required/unverified。build_agent_response_contract 与托管 skill 路由到同一契约,不在 host 里另写判定清单。原 checker、结果格式、CI 配置默认值、合并 gate 与外部写入路径均保持。
对主干的风险
最强反例是只有 helper 测试通过、真正安装入口测试仍在排队,却误把关键证据降为 optional。新公开 CLI 参数矩阵独立覆盖 passed/pending/unverified/failed,只有当前关键覆盖 passed 能批准;缺少覆盖仍退出 1,单纯排队却发 REQUEST_CHANGES 也被判为无 blocker。历史正反例保留完整有界运行集与仍然失效的并发情形,防止一次成功重跑掩盖间歇故障。CLI 还验证不触发 GitHub discovery、不改变输入文件。
354 项测试、Ruff、diff 检查及 17 项风险选择 premerge 检查通过;37 项显式 opt-in 的 live model probes 未执行,不据此声称真实模型行为已验收。原 wait=true/false 与合并检查覆盖通过,关闭 CI 等待的路径没有新增查询。公开边界扫描干净;未增加持久状态、权限、自动发布或默认启用能力。
语义与 CI 对齐
复用现有 required/status/verdict 词汇,没有新协议或 prose 分类器。先运行当前 diff advisory,再通过全树 semantic drift 检查。待完成的 CI 与关键证据缺失有不同含义;合并仍按现有配置和授权判断,批准不授予 admin bypass。
我的整体评价
本次有界修复的交付判定为 goal_achieved:足够的独立当前证据可完成代码结论,缺少决定性覆盖依然受阻。long_horizon preserved,没有调度、额度或权限变化;user_experience improved,避免因排队要求无意义改代码。未来重构检查已应用于同一边界:复用现有 checker 与规则 owner,未增加重复判定层;更大拆分不属于本次。整体成本与问题匹配。
这是维护者明确授权的精确 head 自评。残余风险是未运行 live model probes 和 Windows host 安装验收,结构化一致性也不证明证据真实性。当前源代码、完整差异与独立验证支持 APPROVE;合并资格须另作原生读回。
English verdict: APPROVE — sufficient current invariant coverage can establish code approval before CI completion. Missing decisive evidence still blocks approval; result schemas, configured CI policy and merge authority are unchanged. Explicitly authorized exact-head self-review.
The merge-base changed after approval.
loopx-agent
left a comment
There was a problem hiding this comment.
Exact head: 851e915867057356ac596d8d6e08283389369c97 · actual latest-main merge base: 6a172f699653a11c5a4dad578e244fe535013c4c
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
评审者需要判断当前提交是否解决问题,并把代码结论与远端检查排队状态分别记录。
此前即使真实入口和负例已独立验证,评审指令仍要求等待所有 CI 终结,导致仅因排队就要求修改代码;现在充分的当前证据可以支持批准,缺少关键验证仍会阻止批准。
本次完整六文件改动已通过原生评审 CLI 正反例、354 项测试和 17 项风险选择检查;代码结论不再被单纯排队或未知历史原因自动否决。
本 PR 不增加合并权限、不更改 CI 等待配置默认值、不取消关键验证,也不把历史失败解释成已经修复。
改动思路
保留原有评审能力作为唯一规则 owner:原生 packet 生成审查契约,评审者执行并记录证据,原来的 result checker 检查结构化声明,另一个 merge-readiness 入口检查合并条件。这里修复的是“最终 CI 才能下代码结论”的错误指令,没有创建宽松分类器、项目例外或第二份决策逻辑。未知历史原因仍可记录;当前证据是否充分由实际路径和完整运行集判断,单独挑选一次绿色重跑不能覆盖当前间歇故障。
具体改动
没有找到要求全部 CI 终结后才批准代码的独立已接受书面规格。以修复前结构化检查器、配置与合并权限边界及已复现的错误结论作为验收基础;本次改动文档是待审行为说明,不拿它自证正确。实际 base-to-head 为六文件 +206/-9:一个契约 owner、README 与托管 skill,以及三处持久验证。远端缓存 base 展示的旧主干历史不是本次新增功能:最新 main 已是本 head 的祖先,合并增量只有这六文件。
关键代码讲解
VALIDATION_FAILURE_ATTRIBUTION 增加现有证据字段里的 history scope,要求保留旧记录并解释完整当前覆盖,不声称旧原因已修复。build_review_execution_contract 明确 required 表示决定代码结论所需证据;远端 pending 只有在相关不变量独立成立时才是非必需诊断,唯一关键验证尚未执行时仍保持 required/unverified。build_agent_response_contract 与托管 skill 路由到同一契约,不在 host 里另写判定清单。原 checker、结果格式、CI 配置默认值、合并 gate 与外部写入路径均保持。
对主干的风险
最强反例是只有 helper 测试通过、真正安装入口测试仍在排队,却误把关键证据降为 optional。新公开 CLI 参数矩阵独立覆盖 passed/pending/unverified/failed,只有当前关键覆盖 passed 能批准;缺少覆盖仍退出 1,单纯排队却发 REQUEST_CHANGES 也被判为无 blocker。历史正反例保留完整有界运行集与仍然失效的并发情形,防止一次成功重跑掩盖间歇故障。CLI 还验证不触发 GitHub discovery、不改变输入文件。
354 项测试、Ruff、diff 检查及 17 项风险选择 premerge 检查通过;37 项显式 opt-in 的 live model probes 未执行,不据此声称真实模型行为已验收。原 wait=true/false 与合并检查覆盖通过,关闭 CI 等待的路径没有新增查询。公开边界扫描干净;未增加持久状态、权限、自动发布或默认启用能力。
语义与 CI 对齐
复用现有 required/status/verdict 词汇,没有新协议或 prose 分类器。先运行当前 diff advisory,再通过全树 semantic drift 检查。待完成的 CI 与关键证据缺失有不同含义;合并仍按现有配置和授权判断,批准不授予 admin bypass。
我的整体评价
本次有界修复的交付判定为 goal_achieved:足够的独立当前证据可完成代码结论,缺少决定性覆盖依然受阻。long_horizon preserved,没有调度、额度或权限变化;user_experience improved,避免因排队要求无意义改代码。未来重构检查已应用于同一边界:复用现有 checker 与规则 owner,未增加重复判定层;更大拆分不属于本次。整体成本与问题匹配。
这是维护者明确授权的精确 head 自评。残余风险是未运行 live model probes 和 Windows host 安装验收,结构化一致性也不证明证据真实性。当前源代码、完整差异与独立验证支持 APPROVE;合并资格须另作原生读回。
English verdict: APPROVE — sufficient current invariant coverage can establish code approval before CI completion. Missing decisive evidence still blocks approval; result schemas, configured CI policy and merge authority are unchanged. Explicitly authorized exact-head self-review.
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Exact head: 851e915867057356ac596d8d6e08283389369c97 · actual latest-main merge base: 6a172f699653a11c5a4dad578e244fe535013c4c
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
评审者需要判断当前提交是否解决问题,并把代码结论与远端检查排队状态分别记录。
此前即使真实入口和负例已独立验证,评审指令仍要求等待所有 CI 终结,导致仅因排队就要求修改代码;现在充分的当前证据可以支持批准,缺少关键验证仍会阻止批准。
本次完整六文件改动已通过原生评审 CLI 正反例、354 项测试和 17 项风险选择检查;代码结论不再被单纯排队或未知历史原因自动否决。
本 PR 不增加合并权限、不更改 CI 等待配置默认值、不取消关键验证,也不把历史失败解释成已经修复。
改动思路
保留原有评审能力作为唯一规则 owner:原生 packet 生成审查契约,评审者执行并记录证据,原来的 result checker 检查结构化声明,另一个 merge-readiness 入口检查合并条件。这里修复的是“最终 CI 才能下代码结论”的错误指令,没有创建宽松分类器、项目例外或第二份决策逻辑。未知历史原因仍可记录;当前证据是否充分由实际路径和完整运行集判断,单独挑选一次绿色重跑不能覆盖当前间歇故障。
具体改动
没有找到要求全部 CI 终结后才批准代码的独立已接受书面规格。以修复前结构化检查器、配置与合并权限边界及已复现的错误结论作为验收基础;本次改动文档是待审行为说明,不拿它自证正确。实际 base-to-head 为六文件 +206/-9:一个契约 owner、README 与托管 skill,以及三处持久验证。远端缓存 base 展示的旧主干历史不是本次新增功能:最新 main 已是本 head 的祖先,合并增量只有这六文件。
关键代码讲解
VALIDATION_FAILURE_ATTRIBUTION 增加现有证据字段里的 history scope,要求保留旧记录并解释完整当前覆盖,不声称旧原因已修复。build_review_execution_contract 明确 required 表示决定代码结论所需证据;远端 pending 只有在相关不变量独立成立时才是非必需诊断,唯一关键验证尚未执行时仍保持 required/unverified。build_agent_response_contract 与托管 skill 路由到同一契约,不在 host 里另写判定清单。原 checker、结果格式、CI 配置默认值、合并 gate 与外部写入路径均保持。
对主干的风险
最强反例是只有 helper 测试通过、真正安装入口测试仍在排队,却误把关键证据降为 optional。新公开 CLI 参数矩阵独立覆盖 passed/pending/unverified/failed,只有当前关键覆盖 passed 能批准;缺少覆盖仍退出 1,单纯排队却发 REQUEST_CHANGES 也被判为无 blocker。历史正反例保留完整有界运行集与仍然失效的并发情形,防止一次成功重跑掩盖间歇故障。CLI 还验证不触发 GitHub discovery、不改变输入文件。
354 项测试、Ruff、diff 检查及 17 项风险选择 premerge 检查通过;37 项显式 opt-in 的 live model probes 未执行,不据此声称真实模型行为已验收。原 wait=true/false 与合并检查覆盖通过,关闭 CI 等待的路径没有新增查询。公开边界扫描干净;未增加持久状态、权限、自动发布或默认启用能力。
语义与 CI 对齐
复用现有 required/status/verdict 词汇,没有新协议或 prose 分类器。先运行当前 diff advisory,再通过全树 semantic drift 检查。待完成的 CI 与关键证据缺失有不同含义;合并仍按现有配置和授权判断,批准不授予 admin bypass。
我的整体评价
本次有界修复的交付判定为 goal_achieved:足够的独立当前证据可完成代码结论,缺少决定性覆盖依然受阻。long_horizon preserved,没有调度、额度或权限变化;user_experience improved,避免因排队要求无意义改代码。未来重构检查已应用于同一边界:复用现有 checker 与规则 owner,未增加重复判定层;更大拆分不属于本次。整体成本与问题匹配。
这是维护者明确授权的精确 head 自评。残余风险是未运行 live model probes 和 Windows host 安装验收,结构化一致性也不证明证据真实性。当前源代码、完整差异与独立验证支持 APPROVE;合并资格须另作原生读回。
English verdict: APPROVE — sufficient current invariant coverage can establish code approval before CI completion. Missing decisive evidence still blocks approval; result schemas, configured CI policy and merge authority are unchanged. Explicitly authorized exact-head self-review.
The merge-base changed after approval.
A reviewer can request code changes solely because unrelated CI jobs are still queued, or carry every historical failure into the current verdict. This repairs the built-in review contract so independently verified code can receive APPROVE while CI completion remains a separate merge-readiness decision.
Policy revision 18 keeps the existing validation matrix and checker.
requiredmeans decisive review evidence rather than GitHub branch protection: pending remote jobs are diagnostic when current real-path coverage establishes their relevant invariants; missing decisive coverage, current regressions and material instability still block approval. Historical evidence is retained and assessed against current coverage, rather than erased or treated as an automatic veto. The host skill and capability reference use the same owner. No new schema, classifier, configuration switch, dismissal authority or merge exception is added.Validation: 354 review/CLI/configuration/body/queue/closeout tests passed, including positive and negative pending-CI coverage cases and no-write public CLI readback. Ruff, semantic advisory, full semantic drift and standard risk-selected premerge passed (17 catalog/risk/boundary checks, no failure or manual hold). The 37 opt-in live model probes were not run; deterministic corpus guards passed. Tests reason over synthetic evidence and do not certify evidence truth or model performance.
CLI, existing capability editor and merge configuration retain their current interfaces and default CI policy. CI waiting can only change through the existing machine/Goal configuration owner. Approval is not merge authorization; configured CI gates, exact-head review and unresolved-thread rules remain intact.