Skip to content

v0.24.0

Choose a tag to compare

@github-actions github-actions released this 01 May 18:14
· 523 commits to main since this release

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/codex binary 和 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 / GradeResultcostReportedByExecutor / 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 + child EvaluationReport —— 顶层 kind: "batch-evaluation" 只保存批次索引和摘要,每个 skill vs baseline 单独持久化为可比较的原子报告。child report 的 treatment variant 使用真实 skill 名,趋势页按 skill 名聚合,不再写 generic skill。删除 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。新 spawnWithSigintPropagation helper 统一 SIGINT / timeout / abortSignal 三条 kill 路径,SIGTERM + 500ms grace + SIGKILL 兜底。行为变化:gemini / script 加 10MB maxBuffer 上限(旧 spawn 实现无限制);timeout grace 多 500ms(120s 默认下不显著)。详见 #33
  • ⚠ BREAKING-COMPARABILITY:cacheKey() 加 executor runtime 指纹,prefix v3:v4: —— 同 executor 换 binary / SDK 版本时旧 cache 不再误命中,避免报告写入新 runtime 指纹但输出来自旧 runtime。runtime 探测改用 executor 实际 PATH 形态,codex-sdk bundled @openai/codex 版本按 SDK 解析链读取。详见 #37
  • ⚠ BREAKING-COMPARABILITY:cacheKey() 加 executor 名,prefix v2:v3: —— 同 model 名跨 executor(如 gpt-4oopenai-api vs codex)旧 v2 schema 互相污染缓存。旧 v2 cache 一次性失效,无数据丢失,首跑无 cache 加速(同 v0.22.0 加 allowedSkills 那次 pattern)。详见 #31

Removed

  • ⚠ BREAKING:删 openai-cli executor 及 'openai' alias —— 跟 'openai-api' HTTP 实现职责重复(同 endpoint / token schema / OPENAI_API_KEY env),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