Skip to content

Verification integrity fixes, arena.oxagen.sh site, ABP spec + research paper#22

Merged
macanderson merged 7 commits into
mainfrom
worktree-arena-site-paper-fixes
Jul 19, 2026
Merged

Verification integrity fixes, arena.oxagen.sh site, ABP spec + research paper#22
macanderson merged 7 commits into
mainfrom
worktree-arena-site-paper-fixes

Conversation

@macanderson

Copy link
Copy Markdown
Owner

What

Three workstreams in one branch:

1. Bug fixes (src/, harbor/) — from a full-repo review, ranked by severity:

  • Timeouts now kill the agent's whole process tree (POSIX process groups). Previously only the direct child was killed: a grandchild holding the stdio pipes could hang a trial forever, and orphans could keep mutating the workspace during held-out verification.
  • Scored trials with no parseable token envelope no longer poison token/cost medians (and the regression gate) with zeros.
  • claude-code adapter preserves full model ids instead of collapsing to the floating sonnet family alias, restoring version pinning, matchedModels, and pricing integrity.
  • Gemini token normalization counts thoughts + tool tokens (previously dropped, understating Gemini in head-to-heads).
  • Pretty-printed JSON envelopes parse in both the TS harness and the Harbor Python adapter.
  • Per-trial error containment (a harness error scores one trial agent-error instead of aborting the run), incremental results.json, spawn-to-exit wall clock, diff-unknown vs diff-empty distinction, strict numeric CLI flags, -o short flag, loud failures for unknown verify ids / duplicate agent specs / typo'd gate thresholds, null cost for unpriced cache writes, NaN-free report rows.
  • Harbor: float-tolerant ARENA_TIMEOUT, loud empty-{budget} failure, metrics.kind validation.

2. Site (site/) — static site for arena.oxagen.sh: landing page, research paper, ABP spec. Deployed via the Vercel project arena (oxagen team).

3. Docs (docs/) — the Agent Benchmark Protocol draft spec and the research paper The State of Agent Benchmarking (sources in markdown, rendered on the site).

Verification

  • pnpm typecheck clean, pnpm test 53/53, pnpm lint clean, pnpm arena verify invariants covered by the pipeline test.
  • Harbor Python tests not runnable locally (no pytest in env); CI covers them.

🤖 Generated with Claude Code

macanderson and others added 2 commits July 18, 2026 19:34
Highest-severity first:
- Timeouts kill the agent's whole process tree (POSIX process groups);
  trials can no longer hang on pipes held by orphaned grandchildren,
  and survivors can no longer tamper with held-out verification.
- Zero-token (unparseable-envelope) trials are excluded from token/cost
  medians and deltas instead of dragging them toward zero past the gate.
- claude-code preserves full model ids (no floating "sonnet" alias), so
  version pinning, matchedModels, and pricing lookups hold.
- Gemini normalization counts thoughts (reasoning) and tool tokens.
- Pretty-printed JSON envelopes parse (TS + Harbor Python mirror).
- Per-trial error containment + incremental results.json; wall clock
  measures spawn-to-exit only; git-diff failure is "unknown", never
  "empty"; report table shares perAgentSummary with the gate (no NaN).
- CLI: -o short flag (as documented), strict numeric flags, unknown
  verify ids error, duplicate agent specs rejected, typo'd gate
  thresholds error instead of silently disabling the check.
- Cost with unpriced cache writes is null, never guessed.
- Harbor: float-tolerant ARENA_TIMEOUT (never silently unbounded),
  loud empty-{budget} failure, metrics.kind validated at load.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…raft

Static site (site/) for arena.oxagen.sh: landing page with the
matched-model scoreboard, and the ABP design spec. Spec source lives at
docs/agent-benchmark-protocol.md: four interchange schemas (task, run,
trace, verdict), the live GitHub-issue task pipeline with golden traces,
smallest-normalized-diff scoring, conformance levels, and roadmap.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @macanderson, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

macanderson and others added 2 commits July 18, 2026 19:39
Research paper surveying the July 2026 agent-benchmark landscape through
the engine-vs-model lens: 28 cited references, gap analysis of four
capabilities (matched-model isolation, efficiency grading, statistical
CI gating, live tasks with golden traces), COI disclosed. Markdown
source in docs/, rendered at arena.oxagen.sh/paper/. README links the
site, paper, and spec.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macanderson
macanderson marked this pull request as ready for review July 19, 2026 04:48

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @macanderson, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@macanderson
macanderson enabled auto-merge (squash) July 19, 2026 04:49
macanderson and others added 2 commits July 18, 2026 21:52
…ntend

Main's #20 independently implemented several of the same fixes. Kept
main's architecture (async workspace, taskDir threading, pricing param,
intFlag/numFlag, report perAgentSummary) and layered this branch's
unique fixes on top:
- anchor-based JSON block scan (survives stray braces in log lines;
  main's char-scan fails that test)
- drain-timer settle in adapter execute (grace timer not unref'd, so
  the promise always settles) + utf8 stream encoding
- collectDiff returns null on git failure (unknown never equals empty)
- bounded 1800s fallback for non-numeric ARENA_TIMEOUT (main's helper
  silently disabled the container timeout)
- kept both sides' parse tests (4 pretty-printed envelope cases)

Also applied #21's oxageninc->macanderson rename to site/ and docs/.
Note: repo now has two frontends, web/ (from #20) and site/ (deployed
at arena.oxagen.sh); consolidation is a follow-up decision.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Both heads merged origin/main with different conflict resolutions. This
keeps the locally verified resolution (55/55 tests): both parse test
suites, the anchor-based JSON scan, drain-timer settle, and the bounded
ARENA_TIMEOUT fallback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@macanderson
macanderson merged commit 8f4de69 into main Jul 19, 2026
4 checks passed
@macanderson
macanderson deleted the worktree-arena-site-paper-fixes branch July 19, 2026 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant