Skip to content

fix(benchmark): retain safe experiment board rejection reasons - #8076

Merged
huangruiteng merged 1 commit into
mainfrom
codex/benchmark-board-actionable-errors-20261105
Nov 5, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/benchmark-board-actionable-errors-20261105

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

实验看板缺少已声明的 guardrail 指标、或试图把已结束的 run 改回运行中时,CLI 原先只返回 invalid benchmark experiment board input,无法据此修正输入。此改动让现有 owner 显式标记可安全展示的计分资格与状态迁移诊断,CLI 保留这些原因;文件、JSON 和未验证字段的错误继续返回通用提示,避免回显路径或原始输入。

校验条件、计分资格、状态迁移和成功响应均保持原样。改动仅涉及现有 benchmark-toolkit 的 Python owner/CLI 错误传递;没有新增能力、设置或前端操作。复用现有 ValueError 兼容边界,避免让调用方依赖错误字符串分类。

验证:99 项 experiment-board/identity 测试通过,包含真实 source CLI 的预览→拒绝→修正→写入、非法状态迁移无写入,以及文件/JSON/未知字段的隐私负例;改动文件 Ruff 通过。两份目标文件的 mypy 检查在 base 和 head 都失败,去除行号变化后同为 32 项既有诊断,未声称类型检查通过。

Validation: 99 tests passed; Ruff passed. Targeted mypy remains failing with the same 32 diagnostics on base and head.

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.

动机

使用实验看板 CLI 登记或修正实验结果的操作者和 Agent。 一份官方结果漏填已声明的 guardrail 指标时,原命令只说输入无效,操作者无法判断该补指标还是修复文件;现在指出缺失的检查类别,补齐后可沿原命令完成预览或写入。

精确 head 的两个完整相关模块共 99 项通过;同一公开测试在不可变主干上有三项诊断断言失败、四项隐私反例通过,确认改善错误解释且保留拒绝边界。 不改变实验分数、可计分资格、状态迁移、默认执行权限或存储格式;不宣称科学实验、长程表现或完整成本已有改善。 本次独立审阅完整 exact head 064e7616f8a7f90977b0b4d945aa1f7d333eeaa6。

改动思路

在既有 benchmark provider 的验证边界标记六处可公开的拒绝原因,CLI 按异常类型选择说明;不对原始错误文本做关键词分类。 本 PR 完成交互失败后的诊断修复,非法输入仍被拒绝,只有原有显式 execute 路径能够写入。

直接显示所有 ValueError 会把未知字段或路径带到公开错误中,字符串分类又会依赖措辞。因此只把既有规则中的固定说明标记为安全,其他异常仍走原来的泛化拒绝。实际校验与存储 owner 不变,没有新增 IO、手工状态、CLI 参数或另一个评分决策层;这个较小的类型边界足以完成当前问题。

具体改动

先读 accepted spec_ref: loopx/capabilities/benchmark_toolkit/README.md#experiment-board,spec_revision: 9c4826d1154d8838993850d845655443e89a09bd,再核对完整四文件差异(+78/-7)。适用 criterion_id:compact public-safe board 已实现,禁止任意输入出现在安全说明中;preview and execute separation 已实现,拒绝和预览不写入,显式 execute 才走锁和原子 ledger;benchmark validation authority 已实现,指标、可计分资格和合法状态仍由原 benchmark owner 判断。

关键代码讲解

原 ValueError 捕获兼容性保留。状态迁移说明中的两个值先经过固定五状态集合归一化;读取旧 row、预览和实际 merge 都经过该 owner,因此损坏的 ledger 值不能绕过校验进入可公开说明。新的本地异常类型不扩展持久化 vocabulary,也没有把 benchmark 特有要求放进通用 Core。

对主干的风险

最强反例是把含私有路径或任意字段的错误误判为安全,或为了显示原因意外放行非法输入。本次核对了全部六处 raise、归一化顺序、实际 CLI stderr 和 ledger 副作用,未知输入仍泛化拒绝。预览、写入和纠正流程复用既有 caller,不增加安装、设置或人工批准步骤。

独立本地检查 结果与边界
完整 provider 与 identity-owner 两模块 PASS:99 项,无跳过
同一当前七项 CLI fixture 对照主干 三项诊断断言失败,四项隐私反例通过;确认预期差异
Ruff、公开扫描、diff、DCO PASS;逐公开路径检查,无新增依赖或状态
native quick premerge FAIL:6 direct 无失败,3 selected 中 2 通过、1 失败;benchmark-sensitive manual hold 保留
mypy 两指定路径及自动跟随的 imports FAIL:base/head 各 4738 条诊断,其中指定路径各 32 条;只归一化行列号后完整诊断向量相同

CLI-output smoke 的失败已与冻结不可变 base 的相同命令和原始日志核对,smoke/probe/test 与依赖声明 blob 未变:两边均在内建 base 测量的 cli_output_probe_runner.py:178 缺少旧内联 interaction_contract, scheduler_hint, selected_todo,尚未进入 head 差分或本次 board 路径。mypy 也保留了所有导入文件的既有失败,没有仅比较总数或把 32 条说成全部。这些必需红色检查与合并 hold 保留,未放宽断言、字节预算或资格规则。 最早测试路径拼错、以及把 fixture 放在 tests 外遗漏 conftest 的两次设置失败已单独保留;纠正后的产品对照才用于结论。未查询、轮询或等待远端 CI。

我的整体评价

APPROVE 这个有界诊断修复,没有发现新的阻塞 finding。在既有 benchmark provider 的验证边界标记六处可公开的拒绝原因,CLI 按异常类型选择说明;不对原始错误文本做关键词分类。 本 PR 完成交互失败后的诊断修复,非法输入仍被拒绝,只有原有显式 execute 路径能够写入。 长程不变量判为 preserved,操作体验判为 improved;没有把更清楚的拒绝信息当作实验证据或完整费用收益。检查范围是现有 CLI 拒绝输出和 provider;完整差异没有渲染页面或新配置,视觉检查不适用。 未验证活动安装、远端看板、完整全局测试或实际科学实验;输入/输出字节预算差分尚未取得资格,mypy 与本地必需 smoke 的既有红色结果及合并 hold 保留。

较小的原 owner 内修复具有正向价值;同样输入的接受/拒绝和 ledger 效果保留,安全原因显示是明确的预期变化。源代码审查通过与本地红色质量门、maintainer 合并授权分开,当前没有合并动作。

English verdict: APPROVE — 064e761: the bounded safe-diagnostic fix preserves rejection, privacy and write boundaries in independent CLI/provider tests; pre-existing local validation failures remain merge holds.

@huangruiteng
huangruiteng merged commit 31b258a into main Nov 5, 2026
22 of 28 checks passed
@huangruiteng
huangruiteng deleted the codex/benchmark-board-actionable-errors-20261105 branch November 5, 2026 03:40
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