Add a ClawBench benchmark for Kernel MCP - #162
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
The smoke task duplicated what the ClawBench arm already proves. Drop its task definition, runner, verifier, fixtures, and MCP config, and drop stale ignore entries nothing writes. Document only the ClawBench flow.
1e6a702 to
17dc7a7
Compare
|
Bugbot request id: serverGenReqId_419a23ae-aea4-49c2-b30f-581f8ea90ad3 |
Bugbot rules debugBugbot rules included in this run
Bugbot request id: serverGenReqId_419a23ae-aea4-49c2-b30f-581f8ea90ad3 |
|
@bmsaadat addressed the review in 17dc7a7, including every blocking item and the fast-follow list:
Validation: 261 tests, production build, TypeScript, Prettier, Python/shell checks, Actionlint, Zizmor, and parsing an existing 129-task result. GitHub CI and the automated reviews are green. Cursor BugBot found two additional issues around Codex tool-name validation and env-file serialization; both are fixed in 685e66a, and BugBot is green on that commit. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 17dc7a7. Configure here.
bmsaadat
left a comment
There was a problem hiding this comment.
Thanks for the thorough turnaround, this addressed everything. Verified locally at 685e66a: 261 tests pass, tsc clean, and I re-read each fix. Merge-base resolution on all three paths, the incomplete-run warning with suppressed deltas, redact-then-truncate on errors, per-agent credential split, and *.pem are all exactly what I was hoping for. Appreciate you also picking up the non-blocking items (shared reward selection, metadata PATCH on re-publish, workflow-level pins with the per-arm configuration column). Approving.

What this adds
This PR adds a reproducible ClawBench benchmark and repository-native acceptance workflow for the browser-control tools exposed by
kernel-mcp-server.ClawBench supplies 129 real-website tasks and evaluates the browser request representing completion. Harbor runs each task with a stock agent and writes numeric rewards plus an ATIF trajectory. Hypeman provides one isolated environment per trial.
Each Kernel MCP trial:
get_connection_contextandexecute_playwright_codethroughmcp-remote;ClawBench remains the scorer and lifecycle owner. The additional
kernel_mcp_validmetric confirms that a trial used the local source build and exact ClawBench browser.Pull-request and scheduled benchmarks
.github/workflows/benchmark-clawbench.ymlsupports:main;/benchmark clawbenchfrom an organization member or repository collaborator.PR runs build the candidate and merge-base SHAs independently, then run both arms concurrently with a workflow-pinned task set, agent, model, judge, and concurrency. One bot comment is updated with each arm's observed configuration, lenient, strict, intercepted, infrastructure, validity, call, duration, and cost results plus candidate-minus-baseline deltas; incomplete arms produce a prominent warning instead of a partial comparison.
The comment trigger executes only the exact allowlisted command, rejects fork PRs and untrusted commenters, and resolves immutable SHAs through GitHub's API. Actions are pinned by SHA, checkout credentials are not persisted, shell inputs are passed through environment variables, and the workflow uses least-privilege job permissions.
Braintrust publication
bun run benchmark:publishreads completed Harbor job directories and publishes all synchronized arms into one private Braintrust experiment using the public Braintrust API.bun run benchmark:reportproduces the same redacted Markdown and JSON summaries used by the workflow.Run locally
./benchmarks/harbor/build-image.sh export CLAWBENCH_REPO=../ClawBench ./benchmarks/harbor/clawbench/run.sh codex \ v2-1134-chapter-finder-redcrossRun all tasks:
See
benchmarks/harbor/README.mdfor credentials, model/version overrides, result paths, reporting, and publication commands.Validation
bun test— 261 passedbunx tsc --noEmit --incremental false— cleanThe earlier three-arm full-suite validation retained and deletion-verified all 387 browser replays. The description-only benchmark candidate now lives in the dependent follow-on PR #169.