Skip to content

v0.2.11

Choose a tag to compare

@ymadd ymadd released this 31 Jul 15:44
· 58 commits to main since this release

The arena moves into the app

agentpit arena was terminal-only, which left it half-built: a round takes minutes and its votes are the scarcest signal agentpit collects, so the judging has to be somewhere you will actually go.

Settings → アリーナ now owns the whole loop — pick a probe, start a round, judge it blind, read the standings. Two patches side by side, no names, one vote each, and the interval shown next to every rating.

Identity is withheld by the CLI rather than by the UI: arena show omits which backend produced which submission unless --reveal is passed, so the webview never holds the names while a comparison is on screen. Votes are cast by blind label — there is no way to express "vote for codex" through the API, from either front-end. The reveal happens once the last pair is judged, never between comparisons where it would steer the remaining picks.

Ten built-in probes, one per capability cell

Writing a fresh arena task every time does not happen, and an ad-hoc one lands in whatever cell the keyword heuristic picks. The set is now indexed by task category — one probe each, all ten covered — and every rendered task declares its own CATEGORY:, read above every routing gate. Running the ten fills the matrix's category axis by construction; the contenders you enter fill the other.

agentpit arena templates
agentpit arena run --template review/find-defects --target src/dispatch.rs
probe cell what it tests
coding/new-unit coding new code to a fixed spec, in the project's own conventions
refactor/untangle refactor structure improved with behaviour held fixed
review/find-defects review finding real defects — and not inventing ones
adversarialreview/trust-nothing adversarialreview reading against the code's own claims
securityreview/owasp-pass securityreview issues traceable to an attack, by CWE
debug/root-cause debug the actual cause, not the first silencing change
explain/how-it-works explain why the code is shaped this way
docs/user-facing docs written from the outside in
planning/implementation-plan planning sequencing real work, named files and risks
longcontext/subtree-inventory longcontext findings that need the whole subtree

Seven of those categories naturally end in prose, and an empty patch is not a weak submission but a missing one — it would hand the opponent a free win. Each names an output file, so a review arrives as a diff like any other and the blind view stays uniform.

Scriptable arena CLI

arena rounds, arena show [--reveal], arena templates --json, arena leaderboard --json, and a non-interactive arena vote --winner A --loser B / --tie A,B. The desktop app is a client of exactly these.

Fixed

  • The BUNDLED CLI card's two absolute paths ran past the edge of their card.