Skip to content

Account for active solver time across every benchmark arm - #8138

Merged
huangruiteng merged 1 commit into
mainfrom
codex/benchmark-four-arm-duration-coverage
Nov 6, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/benchmark-four-arm-duration-coverage

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Fixed-duration campaigns can have a valid score from an arm which stopped early. Reporting only treatment coverage leaves shortened controls invisible.

The campaign report now accepts an optional duration policy for its entire selection. It unions evidence-backed solver intervals for each case and arm, retains unknown timing, and identifies terminal shortfalls for follow-up. A configured arm may finish early only with a normal-end audit and a satisfied Goal verdict for that run. The policy also gates the qualified comparison denominator while retaining descriptive scores. The benchmark operator skill reconciles outstanding time at terminal transitions and preserves provider stops. Paid execution remains under the runner's existing admission checks.

Validated using the campaign report suite (22 passing) and the normal report path with multiple arms, overlapping intervals, downtime and missing evidence. Existing invocations without a duration policy retain their prior comparison rules.

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; model=gpt-6.1-sol; provider=OpenAI; reasoning=max; declaration=runtime_reported

Approval conclusion (author-owned PR; GitHub blocks formal self-approval). Reviewed 8138@7e96a8e1f62b56563542b3484c174b984f25d9ef.

动机 / Motivation

固定时长实验的操作者需要判断每一道题的每个实验臂是否跑够,而非把重启等待或已结束状态当作完整预算。

同样一组已结束且有分的任务,在基线即使只跑了很短时间也进入可计数交集;启用时长策略后,区间重叠只计一次、停机缺口不计入,控制臂不足同样退出合格交集。

独立实际 CLI 的 16 行样例把合格共同题数从基线 7 缩为 2,描述性均分保持原值;不提供策略时 JSON、Markdown 和 CSV 与基线逐字相同。

本次只审查离线报告,不启动实验、补跑、模型调用,也不认证适配器声明的区间或 Goal 验收本身。

计时来源真实性和补跑执行仍属于既有实验运行者;本 helper 只验证输入边界并汇总,不获得运行、花费或续跑权限。

改动思路 / Approach

校验、区间并集和报告资格仍属于既有 TypeScript 离线 helper;人工输入只承载不可从状态推断的策略与带证据时段,报告不成为 runner 或调度器。

当前范围交付所有实验臂的有效时长读回和合格分母约束;旧调用不变,实际补跑、调度和长期效果不在本 PR 内。

原有结束状态、描述性分数和审计仍分别保留。新策略先逐臂合并实际区间,再把 covered 或符合明确提前结束条件的当前尝试加入合格交集;描述性共同题目均分没有被悄悄换成新分母。它不把“还欠时长”转换为执行命令,原有授权、配额和 provider 停止条件继续有效。

具体改动 / Changes

接受依据是 docs/reference/benchmark-campaign-report.md,版本 1dd8cbf79770648cd473b88eaf87587e48c0fcd8。按变更前的接受合同逐项核对,当前新增文档仅用于披露:

  • Input and ownership:implemented。显式选择当前运行,按共同题目归一化比较,helper 只读且不负责调度或花费。 已由专项测试与独立实际入口核对。
  • Terminal execution evidence:implemented。Goal 正常结束需要匹配运行的审计与 satisfied,结束状态不替代验收。 已由专项测试与独立实际入口核对。
  • Reading the outputs:implemented。缺少计量保持未知;分数、执行结果和可计数资格分别呈现,旧 JSON/CSV/Markdown 调用保持兼容。 已由专项测试与独立实际入口核对。

关键代码讲解

  • export function validateInput:输入时长、实验臂、区间及运行审计先验证。入口仍由原调用者承载,缺失、不匹配或拒绝不制造结果,也不授予执行权限。

  • function durationCoverage:排序副本并合并区间,仅匹配允许臂的当前正常验收可提前完成。入口仍由原调用者承载,缺失、不匹配或拒绝不制造结果,也不授予执行权限。

  • export function buildReport:只把 covered 或合格 goal_completed 加入合格交集;描述性均分保留。入口仍由原调用者承载,缺失、不匹配或拒绝不制造结果,也不授予执行权限。

完整范围为 4 个文件、+90/−1。可计时段是调用方带证据的原始事实,提前完成臂名单是不可推断的意图,coverage 和 disposition 是局部派生值。排序使用副本,原输入不改写;重启空档没有补零或算作运行。未知时段和明确空数组分别保留 null 与 0。

对主干的风险 / Risks

最危险的是短控制臂仍进入合格交集,或替换后的当前运行借用旧尝试的正常 Goal 审计。独立实际 CLI 覆盖这两种反例,90000ms 的区间并集没有被重叠或停机凑到 100000ms;未允许臂的 Goal 结束也不能豁免。四类非法输入在输出前拒绝。缺少 evidence 的真实性仍由原适配器和操作者承担,helper 不声称是审计认证器。

PASS:head 22 项、实际 merge base 21 项 TypeScript;独立 16 行实际 CLI 对照、四类非法输入和输入不变检查通过。禁用新策略后 JSON、Markdown、CSV 与基线逐字一致;CP TypeScript、配置的 17 个 mypy 根目录及选定 Ruff 通过。额外整包 mypy loopx 在两侧同为 5,140 条诊断,完整规范化诊断多重集相同,仍记 FAIL。

标准 premerge 选中 15 项,直接与当前范围功能检查没有失败,但保留 benchmark manual hold;raw maintainability 在独立不可变 base/head 都失败,完整输出相同,均指向未改动的 _admitted_interaction_next_cli_actions。严格 change-quality 收据保持失败,没有降低门槛,也没有用 native advisory 把失败改成通过。未查询或等待远端 CI。

语义与 CI 对齐

新增 disposition 留在本离线报告局部,不是持久控制平面状态。固定时长 skill 指引确实增加逐臂核对义务,适用范围为已有授权的固定时长实验;并非所有报告调用的隐含调度开关。 diff 的 semantic-vocabulary canary 通过;旧捕获和原报告调用的缺省路径由实际入口验证。

我的整体评价 / Verdict

长程维度判定 preserved:原有来源、身份、验收和执行授权保留,没有额外 Turn、模型或 spend。使用体验判定 improved:同样一组已结束且有分的任务,在基线即使只跑了很短时间也进入可计数交集;启用时长策略后,区间重叠只计一次、停机缺口不计入,控制臂不足同样退出合格交集。这是一份有明确剩余验收边界的可用增量,不从测试数或局部读数推导长期净收益。

检查的是命令行 helper 和 Markdown/JSON/CSV 内容,没有新增或改变 App 渲染路径;实际 CLI 输出及原调用的逐字对照覆盖本次边界,无需截图。

无 App 视觉改动;不从离线输入或输出认证实际运行时间、账单、自然模型遵循和补跑执行。

此处不需要另建运行管理器或补跑服务;保留一个输入策略和一个派生覆盖规则更容易维护。 原始质量失败与合并资格独立保留,本次 APPROVE 是当前功能范围的评审结论,不授予合并、安装、补跑或付费执行权限。

English verdict: APPROVE. Exact-head real-entrypoint, negative and disabled-path checks support the scoped change; raw quality holds and unverified operational outcomes remain separate.

@huangruiteng
huangruiteng merged commit 7bdae35 into main Nov 6, 2026
29 of 40 checks passed
@huangruiteng
huangruiteng deleted the codex/benchmark-four-arm-duration-coverage branch November 6, 2026 04:32
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