Skip to content

fix(release): reuse migration policy and stabilize native proof validation - #7524

Merged
loopx-agent merged 3 commits into
mainfrom
codex/release220-native-interrupt-stability-20261028
Oct 27, 2026
Merged

loopx-agent merged 3 commits into
mainfrom
codex/release220-native-interrupt-stability-20261028

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Problem and resulting behavior

Release qualification exposed three independent boundary mistakes. The Todo summary duplicated retired policy literals outside the existing migration owner; it now delegates to that owner, preserving normalization and fail-closed handling without expanding the hard-cut allowlist. Both generated RFC indexes are refreshed from the unchanged headers and actual 18-entry migration ledger.

An interrupted native Turn can expose terminal tool metadata later in extended history. The native regression now checks the complete original rollout bytes, all completed history, original interrupted user input and original Turn IDs after fork continuation. It retains exact fork-history readback, the original candidate in the real next model input, exactly four provider requests, and rejection of the interrupted cursor as a completed checkpoint. No stored history or authority is normalized or rewritten.

Concurrent File proofs coalesce while they overlap. A slower read may arrive after a rejected proof is already evicted, so a batch of six failures cannot require exactly one proof. The test retains the exact one-proof valid cohort, all corrupt-read refusals, and exact one-new-proof increments for a later retry and repaired bytes.

Validation and remaining boundary

At exact head 133b4a28fa924243841856ac62a371ccb835d838: the affected TypeScript modules passed 459 tests with zero skips. Real native checkpoint/handoff modules passed 65 tests, with five explicit environment skips: one requires a source-pinned checkpoint API and four need the external checkpoint supervisor. Those paths remain unqualified. Required Ruff, mypy, TypeScript typecheck, syntax, five-path public-boundary and the three affected public seams passed. Three controlled counterexamples are rejected: a changed original source observation, no in-flight coalescing and a retained rejected proof. These are diagnostic negatives, not passing external model qualifications. Premerge ran 5 direct and 19 selected checks with zero failures; its one benchmark-sensitive manual hold is separately adjudicated over this exact diff before merge.

The original full pytest run remains interrupted after one observed native assertion failure; the original PostgreSQL/control-plane suite remains 6,057 passed and one failed concurrency assertion; the original 514-public sweep retains four failures including one timeout. The timed-out smoke independently passed on the identical source in 40.27 seconds under lower load with its original 120-second limit. No timeout threshold was increased. These earlier results are not relabeled as passing final qualification.

This PR changes no activation, scoring, experiment, provider permission, lease, quota or persisted request schema. It launches no paid model or benchmark job. Final release gates will run against one frozen reviewed source with the original failure and skip distinctions preserved.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
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.

Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

APPROVE,精确 head 133b4a28fa924243841856ac62a371ccb835d838,没有未解决的阻塞发现。

动机 / Motivation

维护原生恢复、Todo 显示与发布回归的开发者。 中断后的派生工具历史可能迟到,旧测试把它当成原来源被改写;失败证明被移除后,稍晚到达的File读取又被误要求共享同一次验证。退休词汇还在summary内重复定义,RFC索引遗漏了既有ledger项。 原生测试直接保护完整原始rollout与原输入,仍拒绝中断checkpoint;File测试检查真实重叠共享和拒绝后重验,summary复用原迁移owner,双语索引对应实际18条ledger。 不放宽checkpoint准入、退休策略拒绝、评分、超时、权限或配额,不启动实验,也不宣称整仓或正式发布已经通过。

改动思路 / Approach

沿现有migration owner集中规范化;把测试绑定到持久源完整性及in-flight证明的真实生命周期,保留独立反例,不增加sleep、阈值或scanner例外。 当前批次是五个既有文件的发布根因修复:一个等价normalizer复用、两个回归oracle和两个派生RFC索引;没有新状态、协议、开关或UI。 退休值的识别是拒绝/显式修复的依据,summary不应再拥有一份literal集合。原生中断的扩展工具视图则可能在稍后补充终态metadata,不能把派生视图的迟到当成持久来源被改写。File在途证明只覆盖实际重叠的读取;被拒绝的promise退出后,新到达的读取本来就必须重新验证。

具体改动 / Changes

按 base f63647e2e867a30dd8761baaa1df69cba9c9860b 的 docs/development/good-smokes.md 核对 DURABLE-SOURCE、PROOF-LIFECYCLE、REUSE-RETIRED-OWNER 与 PAIRED-INDEX,结合既有peer-runtime迁移契约和实际owner判断。完整diff只有五个文件:生产summary把已经过Python-whitespace处理的token交给同一normalizer,大小写、空白、合法/非法值和retired marker输出不变,没有扩展hard-cut scanner的allowlist。

关键代码讲解

原生测试仍先证明中断cursor不满足completed checkpoint,再让真实fork从原候选继续,读取实际下一次模型输入中的原标记。新增原始rollout全文字节比较;所有completed历史、原中断用户输入、Turn IDs和中断状态继续精确比较,初次fork历史读回也保留。全程只能有原来的四次provider请求。后续hydrate的工具终态metadata不成为新来源或执行权,也未改生产checkpoint判断。受控把最终source读回结果增加一字节会命中断言,该反例不写历史文件或活跃authority。

File测试保留首批六个有效读取只做一次验证,以及全部corrupt读取必须失败。失败batch允许后到的IO在原promise移除后另验;其后单次重试和修复bytes仍必须分别恰好新增一次证明。禁用在途共享、错误保留被拒promise的两种独立私有副本反例都会失败。双语STATUS只是由现有headers和ledger生成的16→18条计数,没有更改RFC生命周期。

PASS:459项受影响TypeScript回归,0跳过;真实native checkpoint/handoff模块65通过、5跳过。1项需要API source pin,4项需要外部checkpoint supervisor,它们继续未资格。规定Ruff、17模块mypy、TypeScript typecheck、syntax、五路径公共边界和三项公开seam通过。premerge5direct+19selected自动检查零失败,raw exit仍为1、manual_review_required,保留1项benchmark-sensitive门;本次完整人工范围审查确认无scoring、task/cohort、预算、job或权限变化,单独结清这个范围门。CI依Goal策略未查询。

对主干的风险 / Risks

主要风险是调整测试时移除真正的来源完整性或proof eviction约束,因此保留完整source bytes、实际模型输入、completed历史和原Turn身份,并用三个受控反例证明新断言能拒绝损坏。生产变化仅复用既有typed normalizer;没有新compatibility branch、存储字段或默认策略。手工审查只处理当前benchmark测试范围,不把未附着supervisor/source pin记为通过。

历史f636整仓运行在1项失败、4627通过后中断;真实PostgreSQL/control-plane原运行6057通过、1项失败;原514public sweep保留4项失败与1次超时。其中超时脚本在同一source较低负载下40.27秒完成,仍用120秒限制;没有提高timeout,也不把该单项重跑改写为完整fleet通过。负例探针的两次依赖缺失先期失败亦保留,只有补齐其公开fixture依赖后的三项反例才用于当前结论。

我的整体评价 / Verdict

沿现有migration owner集中规范化;把测试绑定到持久源完整性及in-flight证明的真实生命周期,保留独立反例,不增加sleep、阈值或scanner例外。 当前批次是五个既有文件的发布根因修复:一个等价normalizer复用、两个回归oracle和两个派生RFC索引;没有新状态、协议、开关或UI。 这是与原发布缺口对应的可回退增量:统一一个现有词汇owner,以真实持久来源和证明生命周期修复oracle,再使派生索引一致。没有新UI或业务能力,现有入口的语义保持;不需要新增框架、延长sleep、保留坏promise或接受中断checkpoint。最终统一源码的完整pytest、真实PostgreSQL、514公开smoke、安装/前端、付费模型和发布渠道仍需独立完成;五个原生环境skip继续未资格。

English verdict: APPROVE 133b4a28fa924243841856ac62a371ccb835d838. Existing migration ownership and fail-closed semantics are preserved; durable native source and File proof lifecycle are verified by459TypeScript,65native passes and3negative counterexamples. Five native environment skips and final integrated release qualification remain explicit.

@loopx-agent
loopx-agent merged commit 24e21f2 into main Oct 27, 2026
5 of 7 checks passed
@loopx-agent
loopx-agent deleted the codex/release220-native-interrupt-stability-20261028 branch October 27, 2026 20:11
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