refactor: reset benchmark research around native runners - #3267
Conversation
5ddd7ef to
410d1ce
Compare
Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
410d1ce to
d64418f
Compare
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确评审头(Exact Head): 3267@d64418f2472ddc90995bad1325615c4e08a9b9e8
Base: main | 类型: benchmark legacy reset(597 files, +3420/-5730)
作者: huangruiteng(owner)
详细中文评审
动机
旧 benchmark 栈把 runner 特定进程监督/评分语义与 LoopX 控制面抽象混在一起,产生重复权威、按家族积累的 dated 路径与巨大兼容面。本 PR 把旧实现整体归档,让 native runners 成为 benchmark 任务/评分权威,LoopX 只保留可复用的安全边界与窄研究缝。
改动思路
归档优先:loopx/benchmark_core、benchmark_adapters、benchmarks、旧 CLI/history/status 与 dated research packets 以 rename 方式迁入 deprecate/benchmark-legacy/(保留源码考古,不安装、不默认收集、不作为新架构);active benchmark-toolkit 能力仅保留 provider-neutral 的 permission/artifact/integrity 契约(artifacts.py、run_permissions.py 归位);新建 RFC 关联的 benchmark/ 研究空间(public-safe DeepSWE 实践 + 最小 transport-neutral Goal 事务)。
具体改动
- 归档边界:597 个文件变更,净删除约 2.3k 行;旧 benchmark_core/adapters/ledgers/Goal drivers/packets 全部进入
deprecate/benchmark-legacy/(R100/R085/R099 纯 move)。 - 活跃面:
loopx/capabilities/benchmark_toolkit/保留 artifacts/run_permissions 等安全契约;active CLI/history/status/worker-bridge/release/rollout 移除旧 benchmark 结果管道。 - 研究空间:
benchmark/仅含 generalized 协议/方法指引,无任务文本、轨迹、verifier 输出、分数、凭据或私有路径。 - 无新 benchmark job 启动。
关键内容讲解
- 归档即删除暴露面:rename 到
deprecate/后旧模块不再被 wheel 安装路径引用,active 面无兼容承诺残留(评审重点 2 通过)。 - 活跃契约完整:provider-neutral 权限/产物/完整性契约保留在 benchmark-toolkit,未随旧栈退役(评审重点 1 通过)。
- native Goal 事务最小化:新 Goal 事务仅承载 benchmark 自有监督所需的最小 transport-neutral 接口,不复制旧 runner 编排(评审重点 3 通过)。
对主干的风险
无阻断项。CI 全绿(Sign-off、pytest、build ×2、dependency-review 均 SUCCESS);本地 exact head 复跑 benchmark-toolkit + quota settlement 测试(17 passed)与三个关键 smoke(quality-surface-catalog、benchmark-candidate-source-boundary、docs-governance)全部通过。canary 保留的 benchmark_sensitive maintainer-review hold 属 owner 决策项,非代码阻断。
验证矩阵(exact head 实测/CI)
| 场景 | 结果 |
|---|---|
pytest tests/capabilities/test_benchmark_toolkit.py tests/control_plane/test_quota_settlement_cli.py |
17 passed |
quality-surface-catalog-smoke / benchmark-candidate-source-boundary-smoke / docs-governance-smoke |
PASS |
| CI:Sign-off / pytest / build ×2 / dependency-review | 全部 SUCCESS |
| 作者全量 pytest 审计 | 3117 passed + 2 skipped(13 个失败在 origin/main 同样复现) |
| 变更形态 | 597 files,净 -2310 行;旧栈归档、无新 job |
我的整体评价
归档边界干净、活跃契约保留完整、CI 全绿,净删除 2.3k 行且无新 benchmark job;这是把“runner 专属”与“控制面可复用”解耦的正确一步。结论:APPROVE(author-owned PR,以 COMMENTED 记录批准结论;合并前由 owner 处理 canary 的 benchmark_sensitive maintainer-review hold)。
English Verdict
Verdict: APPROVE (author-owned PR; recorded as COMMENTED because GitHub blocks formal self-approval). The reset cleanly archives the legacy benchmark stack under deprecate/benchmark-legacy/ (pure renames), keeps provider-neutral permission/artifact/integrity contracts in the active benchmark-toolkit capability, removes old benchmark plumbing from active surfaces, and adds a minimal public-safe research seam. Net -2.3k lines, no benchmark jobs launched. All CI checks are green; locally, 17 focused tests and three boundary/governance smokes pass at the exact head. The canary benchmark_sensitive maintainer-review hold remains an owner decision, not a code blocker.
…dule (#3309) explore.py was the largest cli_commands module at 989 lines, only 11 under the modularization smoke's default budget, as the remaining oversized seam after the quota/status/todo/history/scheduler plumbing extractions. Move the cohesive feishu-* sink family (feishu-setup, feishu-visual-configure, feishu-sync, feishu-card) -- registration, dispatch branches, and the sync-only _target_config helper -- into loopx/cli_commands/explore_feishu_commands.py, mirroring the explore_planning_commands sibling pattern with shared arg helpers injected as callables. explore.py drops to 723 lines. Public invocations are unchanged: loopx.cli still calls register_explore_commands/handle_explore_command, subcommand flags and explore --help output are byte-identical, and the singleflight smoke now patches the moved names in their new namespace instead of keeping a compatibility alias. Also drop the stale LEGACY_MODULE_LIMITS entries for benchmark_review_lifecycle.py and terminal_bench_environment_result.py: the native-runner benchmark reset (#3267) removed both modules, which left the size/ownership smoke failing on main with "size budgets reference missing modules". Signed-off-by: 牛瑞博 <912906590@qq.com>
Summary
deprecate/benchmark-legacy/benchmark-toolkitcapabilitybenchmark/research workspace with public-safe DeepSWE practice and a minimal transport-neutral Codex app-server Goal transactionMotivation
The previous benchmark stack mixed runner-specific process supervision and scoring semantics with LoopX control-plane abstractions. That duplicated authority, accumulated dated family-specific paths, and made current experiments inherit a large compatibility surface.
This reset makes benchmark-native tasks, runners, verifiers, and scores authoritative. LoopX retains reusable safety boundaries and a narrow research seam for testing harness effects. The old implementation remains available for source archaeology without being installed, collected by default, or presented as the architecture for new work.
Validation
loopx canary premerge --from-git-diff --tier standard: direct checks passed; catalog 9/9 and risk profile 8/8 passed; only the expectedbenchmark_sensitivemaintainer-review hold remainsorigin/mainin a detached worktreePublic boundary
No task text, raw trajectory, verifier output, score result, credential, private path, or run log is included. Archived files are repository moves of previously tracked public content; new research notes contain only generalized protocol and method guidance.
Review focus
No benchmark job is launched by this PR.