v0.24.0
Added
- codex-cli executor(
--executor codex):接入 OpenAI Codex CLI 当被测 / 评委,跟 Claude Code 同类 agent CLI 对位。token 统计齐全,best-effort 抽 codex 事件流到 omk trace。skill isolation 仅 cwd 一条 channel(codex 没 SDK skill 等价物),allowedSkills=[]强制 cwd 非空。EXECUTOR_REGISTRY 加'codex'跟'claude'对齐。详见 #31。 - codex-sdk executor(
--executor codex-sdk):接入@openai/codex-sdk自带的@openai/codexbinary 和 SDK 事件流,复用 codex trace / token / cost-not-reported 语义。Construct validity:CODEX_HOME 隔离到 per-process tmp 防~/.codex/config.toml渗入 eval(等价 codex CLI--ephemeral+--ignore-user-config,auth.json symlink 透传);SIGINT 联动 abortController 让 PR #33 的 nested-host orphan 修复对 SDK 子进程同样生效。详见 #36。 - executor runtime 指纹写入 report:
meta.executorRuntimes按 variant 记录实际执行环境,meta.executorRuntime/meta.judgeRuntime保留总览。指纹包含 binary 或 SDK 版本、模型和能力快照(system prompt / cost / trace / isolation)。HTML 报告展示指纹,bench diff/bench verdict在缺失或不一致时提示 strict comparability 风险。详见 #37。
Changed
- cost 显示「—」 而非
$0.0000(executor 不报 cost 时):ExecResult/VariantResult/VariantSummary/GradeResult加costReportedByExecutor/execCostReported/judgeCostReported三层 flag,全可选缺位 ≡ true(老报告兼容)。Renderer(HTML detail / list / batch / trends / variance chart / CLI bench diff / bench evolve)全部识别该 flag,not reported 时显示「—」+ tooltip 解释。详见 #31。 - ⚠ BREAKING:
bench run --batch产物收敛为BatchEvaluationReport+ childEvaluationReport—— 顶层kind: "batch-evaluation"只保存批次索引和摘要,每个 skill vs baseline 单独持久化为可比较的原子报告。child report 的 treatment variant 使用真实 skill 名,趋势页按 skill 名聚合,不再写 genericskill。删除overview/artifacts这类混合 schema,bench diff/verdict/diagnose等命令现在只接受 child reportId。旧混合批量报告不做兼容迁移。详见 #40。 - README 重定位 + Statistical rigor 抽到 docs/:hero 从"内置统计严谨性 + 一堆 jargon"改写为 outcome-first("你给 LLM 的知识,价值在哪里?omk 帮你用客观数据回答,而不是凭感觉"),Bootstrap CI / α / 长度去偏 / 饱和曲线 / 用例隔离 5 个不变量保留为 hero 下方 callout(visibility 不丢、SEO 不弱化)。Statistical rigor 章节迁移到 docs/statistical-rigor.md / docs/zh/statistical-rigor.md,README anchor
#statistical-rigor通过<a id>redirect 兼容旧外链。Features 表行重排为 broad-appeal-first(Verdict / 六维 / 多 executor / 21+ 断言 在前),并把中英文报告截图前置到 Quick start 之前。详见 #44 / #47。
Fixed
- 报告术语和多评委可观测性修正:
--model在 CLI / HTML 中统一表达为“任务执行模型”,避免误解为被评测对象;多评委 ensemble 报告不再把 legacy 单评委judgeModel/judgeRuntime展示成实际评委。任务失败的进度行改为✗并显示 error,不再把 timeout 显示成成功。meta.totalCostReported=false标记部分 executor / 评委不回传 USD 时的成本下界,HTML 标出已上报成本。评委 JSON 轻微破损时会尽量保留可解析 score,减少非语义性的 0 分失败。详见 #46。 bench run --batch --no-cache不再被吞:BatchEvaluationReport 和所有 child report 的meta.request.noCache现在都会如实记录并透传到实际单次评测,避免 smoke / CI 想禁用 cache 时仍写入默认 cache。omk bench report --help也改为直接显示帮助,不再误启动 report server。- SIGINT 传播到 spawn 出来的子进程(嵌套 host CLI 下避免 child orphan):用户在 host CLI(codex / claude code)按 Ctrl+C 时,omk spawn 的内层 codex / claude / gemini / script 子进程之前会成 orphan 跑到 timeout。新
spawnWithSigintPropagationhelper 统一 SIGINT / timeout / abortSignal 三条 kill 路径,SIGTERM + 500ms grace + SIGKILL 兜底。行为变化:gemini / script 加 10MB maxBuffer 上限(旧 spawn 实现无限制);timeout grace 多 500ms(120s 默认下不显著)。详见 #33。 - ⚠ BREAKING-COMPARABILITY:
cacheKey()加 executor runtime 指纹,prefixv3:→v4:—— 同 executor 换 binary / SDK 版本时旧 cache 不再误命中,避免报告写入新 runtime 指纹但输出来自旧 runtime。runtime 探测改用 executor 实际PATH形态,codex-sdkbundled@openai/codex版本按 SDK 解析链读取。详见 #37。 - ⚠ BREAKING-COMPARABILITY:
cacheKey()加 executor 名,prefixv2:→v3:—— 同 model 名跨 executor(如gpt-4o走openai-apivscodex)旧 v2 schema 互相污染缓存。旧 v2 cache 一次性失效,无数据丢失,首跑无 cache 加速(同 v0.22.0 加 allowedSkills 那次 pattern)。详见 #31。
Removed
- ⚠ BREAKING:删
openai-cliexecutor 及'openai'alias —— 跟'openai-api'HTTP 实现职责重复(同 endpoint / token schema /OPENAI_API_KEYenv),openai-cli多一层 Python CLI binary 子进程,无独有便利。--executor openai现在会 fall through 到 script executor 失败,改用--executor openai-api。alias 从未被 README 推荐过,影响面小。详见 #32。
What's Changed
- docs(changelog): 中性化 [0.23.0] reconcile bullet 描述 by @lizhiyao in #30
- feat(executor): 新加 codex-cli executor + 修 cache key 跨 executor 污染 by @lizhiyao in #31
- refactor(executor): 删 openai-cli + 'openai' alias,统一用 'openai-api' by @lizhiyao in #32
- docs(claude-md): CHANGELOG 写作克制原则 + 精简 [Unreleased] by @lizhiyao in #34
- docs(claude-md): 按规则一次性精简 0.18.0 - 0.23.0 历史段 by @lizhiyao in #35
- fix(executor): SIGINT 传播到 spawn 出来的子进程,避免 nested CLI host orphan by @lizhiyao in #33
- feat(executors): 新增 codex-sdk 执行器 by @lizhiyao in #36
- docs(claude-md): 重写为 agent 入场清单结构 + PR template 调整 by @lizhiyao in #38
- feat(eval-core): 增加 executor runtime 指纹 by @lizhiyao in #39
- chore(repo): 加 dependabot.yml by @lizhiyao in #43
- feat(eval-workflows): 拆分 each 批次索引报告 by @lizhiyao in #40
- docs(readme): 重定位 hero + Statistical rigor 抽到 docs/ by @lizhiyao in #44
- feat(eval-workflows): 统一 batch evaluation 命名 by @lizhiyao in #45
- feat(renderer): 优化评测报告展示 by @lizhiyao in #46
- docs(readme): 前置报告截图 by @lizhiyao in #47
Full Changelog: v0.23.0...v0.24.0