Skip to content

Bound opt-in native receiver setup recovery by the existing outer budget - #8357

Merged
huangruiteng merged 1 commit into
mainfrom
codex/native-receiver-readiness-budget-20261108
Nov 8, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/native-receiver-readiness-budget-20261108

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

当只读账户观察耗尽默认 25 秒窗口时,现有三次循环已没有时间再做观察,带有 retryable 标记的启动仍会直接失败。本 PR 为全新 native Goal/heartbeat receiver 接入显式、有界的 setup 恢复,默认 25 秒路径和默认诊断形状保持不变。

benchmark.edgebench.run 可显式选择 --native-readiness-total-seconds 75 --native-readiness-attempt-seconds 25。沿现有 SForgeWorker → codex_readiness → shared stdio owner 执行,最多三次;总预算从 native runner 原有剩余时间快照扣除入口延迟后一次性转成 monotonic deadline,单次不超过原有 25 秒。复制、初始化、账户读取、backoff 和 cleanup 均计入完整成本;末次 cleanup 可晚于截止结束,但不能授予新请求。

扩展模式仅对本地 typed account/read/account/rateLimits/read transport timeout 重试,并在有界诊断中保留 account_timeout 布尔值。远端伪造 timeout 文本、初始化失败、身份或协议拒绝、disconnect、未知失败、Stop、无效或耗尽的 outer snapshot 均不能获得扩展重试。观察器不发起 inference、刷新 token、切换账户、重试模型或修改 Goal。Official/single、custom API 和 warm continuation 不接受该覆盖;原 failed-Host allowance owner 保持原行为。

验证(最终头):

  • 63 个针对性用例通过:实际 stdio 子进程的首次超时后恢复、持续失败、拒绝与伪造错误、Stop、既有 outer deadline 裁剪、真实 CLI→worker 接线,以及五种 profile 的原生 Stop/continuation 契约。另有 2 个原 strict-allowance 隔离账户用例通过。
  • 同输入 base/head counterfactual:8 组默认 receipt/请求预算精确相等,3 个 profile 的默认命令和 worker-profile payload 精确相等。显式恢复成功;持续失败与 cleanup/backoff 的截止控制通过。
  • semantic-vocabulary-drift smoke(干净 tracked guard)、Ruff、diff whitespace 检查通过。早期语义运行曾因缺少 npm 依赖失败;随后一次与 staging 并发触发 tracked guard(底层 smoke 返回 0),最终在冻结干净头完整重跑通过。

相邻重构仅将内部观察结果与本地 typed retry 资格分开,避免由输出文字反推权限;未增加核心语义 owner 或并行状态机。新增 whitelist 复用原生 transport 已有 machine codes,局限在现有 benchmark transport owner。

该验证证明合成账户下的真实 transport 恢复与默认隔离,不证明某个真实账户失败的原因或其后续恢复,也不构成模型效果证据。独立 exact-head review、集成和执行权限另行保留。

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

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

动机 / Motivation

APPROVE,针对 head f5c1424b42805e6db971f98779efb585ef7f1f64。 现有三次观察共用一个25秒窗口,第一次账户 RPC 超时后通常没有重试余量。这是一处真实的启动预算分配缺口;本 PR 的价值是恢复尚未开始模型推理的新 receiver,不能据此推断模型得分或真实账户恢复。

我先读了 base e441ae1f 的 provider、startup 与 failed-Host 恢复说明,再审查完整 diff 和未改动的 stdio/native caller。没有找到专门规定这次 startup retry 的已接受规格;采用既有只读账户契约、原始执行预算和可复现失败作判断,不把新增 README 当作自身验收标准。

受影响的是经 benchmark.edgebench.run 启动全新 native Goal/heartbeat receiver 的操作者。
同样的首次账户 RPC 超时,默认路径仍按原25秒窗口退出;显式扩展路径可在既有外层余量内完成第二次只读观察。
合成账户上的实际 stdio 与生成 shell 已验证恢复,默认8组 receipt 和3组 profile 精确相等;未进行真实账户或容器恢复。
实际新 receiver 的账户、资源、容器启动和后续评分尚待实验执行方验证。

不诊断真实账户旧故障的精确原因,不承诺模型提分,不修改 warm 恢复或账户路由,不授权 main 合并。

改动思路 / Approach

保留现有 codex_readiness 与 shared stdio owner。默认仍是25秒;调用者可为全新 native Goal/heartbeat receiver 显式选择总计最多75秒、单次最多25秒、最多三次。第一次进入时,从 native runner 原有剩余快照扣掉入口延迟,转换成一个 monotonic deadline;复制、初始化、cleanup 和 backoff 都消耗同一预算。末次 cleanup 可以晚于截止结束,但不得因此再发一个请求。

更小的“统一调大默认 timeout”会改变所有调用者;重试任意异常会扩大恢复权限。这里把可选策略、原有时间不变量和 provider I/O 放在现有边界内,未增加第二个 scheduler 或持久化时间 owner。当前 PR 的独立交付边界是 CLI 到真实 stdio 的有界启动恢复;实际新实验的账户、资源、容器和评分仍由其执行方资格验证。

可选 setup 策略和原有预算不变量在现有 benchmark/stdio owner 内闭合,不需要第二个 scheduler 或新的持久化时间权威。

当前 PR 只交付 CLI 到真实 stdio 的有限启动恢复;实际账户/容器和评分由实验执行方验证,不包含模型重试或自动执行。

具体改动 / Changes

  • native_readiness_budget() 统一校验两项有限数值;CLI 和 SForgeWorker 都拒绝 Official/single、custom API 和 warm continuation 的覆盖。选中值写入原 worker profile,未选中时保持字段缺省。
  • _observe_once() 用内部 frozen _Observation 分开原 receipt 与本地 retry 资格。只有 shared transport 的精确 account/read、account/rateLimits/read timeout 能进入扩展重试;远端伪造的同名文字仍是 protocol rejection。
  • _outer_remaining() 与 check_native_receiver() 复用 native per-segment 原预算;缺失、无效、未来或已过期快照在账户 I/O 前拒绝。初始化失败、disconnect、未知异常、Stop 不获得扩展重试。原 strict allowance 调用仍用原单次策略。
  • SForgeWorker.format_run_cmd() 在既有 phase clock 和 scheduler 之前接入启动选项,原 solver prompt、Todo/session 和评分机会没有变化。

独立验证:readiness 两套用例 53 PASS,既有 SForge/native Goal caller 353 PASS、4 SKIP,原 strict allowance 2 PASS。4个 Docker 用例明确要求额外隔离环境,未在本次审查执行;不把它们算作通过。另执行了8组同输入 base/head 默认 receipt/请求预算比较、3个默认命令/profile 比较,均精确一致。独立 generated-shell 检查使用实际 stdio 子进程,首次账户 timeout 后第二次成功到达原 phase/worker 边界,再次进入保持同一 phase deadline;后续 solver 用合成 stub,未发模型请求。

精确头的 Ruff、diff 检查,以及 quick premerge 的5项 direct 与3项强制 selected 检查通过。另一个 maintainability 项是既有 Lark module metric debt:在不可变 base 和 head 运行同一 smoke,均 exit1,完整输出的失败身份与细节完全相同;此处保留 advisory/manual merge hold,不把 premerge 整体称为全绿,也未查询或等待远端 CI。

对主干的风险 / Risks

这项 opt-in 会增加所选 receiver 的 setup 等待,完整成本来自原 outer allowance,并非免费增加 solver 时间。真实账户旧故障只留下已脱敏的 timeout,无法反推出精确的原异常;本 PR 不声称已查明那次故障根因或保证实际新运行成功。Stop、未知异常、伪造错误、持续失败与外层预算不足均已作负向检查,未新增 token refresh、账户切换、模型重试或 Goal 修改。

我的整体评价 / Verdict

机制位置和规模与问题相称,默认隔离及完整成本边界有实际 caller/transport 证据,可以合入实验集成候选。命令帮助与错误回读使 operator 可在同一启动命令选择已知设置,没有追加确认轮次;本 PR 未改变任何渲染页面,因此 visual review 不适用。未验证范围是实际账户/容器恢复与得分收益;这不应被包装成已实现的效果优化。APPROVE 不清除独立 merge hold,也不授权 main 合并或自动启动实验。

English verdict: APPROVE — exact head f5c1424; no blocking finding. Finite account-only startup recovery and default parity verified; real-account recovery and score benefit remain unproven.

@huangruiteng
huangruiteng merged commit 5765ab0 into main Nov 8, 2026
24 of 34 checks passed
@huangruiteng
huangruiteng deleted the codex/native-receiver-readiness-budget-20261108 branch November 8, 2026 17:07
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.

2 participants