revert(results): restore eval results to state at 4e50650 - #176
Conversation
The public evals site is rendering an incomplete row in the Benchmark table: "Claude Code / Opus 4.8 (high)" shows a Build score with em-dashes (no data) for Deploy, Investigate, and Resolve, yet still reports a 100% TOTAL. The row is backed by only two Build-stage records (build-cli-001-bootstrap-app and build-database-001-migrate-postgres-to-supabase), so the aggregate is misleading to anyone reading the public table. That data landed via #129 (9bd7320), which is the only commit to touch apps/web/src/data/eval-results.json since 4e50650. There is no experiments/claude-code-opus-4.8*.ts definition in the repo, so the row cannot be reproduced by an eval refresh - it exists only as checked-in JSON, and #129 also re-attributed those two Build evals away from the claude-code-opus-5 experiment and flipped the codex gpt-5.6-sol records for the same two evals from medium to low reasoning effort. This restores apps/web/src/data/eval-results.json byte-for-byte to its state at 4e50650. Scope is deliberately limited to that one file: regression suite results live separately in apps/web/src/data/regression-eval-results.json and are untouched. Note that this also drops the exported results #129 added for the three new supabase-js SDK evals (build-auth-001-email-password-flow, build-dataapi-001-relational-report, build-dataapi-002-restock-alert-report) across the other 14 benchmark rows. Their eval definitions remain in evals/, so the next benchmark refresh will repopulate them. Claude-Session: https://claude.ai/code/session_01TXk7jJgnnwPuancUutKkAg
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Marking ready for review. One note for whoever merges: Today's GitHub Actions incident meant no workflow run was ever dispatched for this branch ( I ran the check locally on Passes. (The 2 warnings are broken symlinks under Worth knowing: No push and no commit were made — the head is still Generated by Claude Code |
mattrossman
left a comment
There was a problem hiding this comment.
Confirmed the numbers look the same as what I saw on the older preview https://evals-git-revert-eval-results-4e50650-supabase.vercel.app/ without Opus 4.8 showing anymore. Merging this as a hotfix to fix prod results.
Requested by Matt Rossman · Slack thread
Before
The public evals site's Benchmark table shows a Claude Code / Opus 4.8 (high) row that only has Build data. Deploy, Investigate, and Resolve render as em-dashes (no data), yet the row still reports a 100% TOTAL. It's backed by just two Build-stage records, so the total is misleading to anyone reading the public table.
After
That row is gone and the Benchmark table matches the exported results as of
4e50650.How
Restores
apps/web/src/data/eval-results.jsonbyte-for-byte to its state at commit4e50650(chore: refresh eval results (#174), 2026-08-06 07:18 UTC). Scope is deliberately limited to that one file — regression-suite results live separately inapps/web/src/data/regression-eval-results.jsonand are not touched by this PR. Diffstat:1 file changed, 620 insertions(+), 3224 deletions(-).#129(9bd7320, 2026-08-06 12:51 UTC) is the only commit to toucheval-results.jsonsince4e50650, which matches Matt's diagnosis.Structural diff
Record count goes 220 → 190. All records in both versions are
suite: "benchmark". Of the 182 records present in both, zero differ — no pass/fail flips, no field changes. The entire delta is the rows below.Removed — the incomplete Opus 4.8 row (4 records).
claude-code-opus-4.8andclaude-code-opus-4.8-no-skills, each holding onlybuild-cli-001-bootstrap-appandbuild-database-001-migrate-postgres-to-supabase(bothstage: build, both passing) — exactly the shape that produces Build 100% / em-dashes / 100% TOTAL. Supporting evidence that this data was accidental: there is noexperiments/claude-code-opus-4.8*.tsdefinition in the repo, so no refresh run could have generated it. The only other mention ofclaude-opus-4-8anywhere is a label formatting assertion inapps/web/src/lib/format.test.ts.Removed — results for three new supabase-js SDK evals across the other 14 benchmark rows (34 records).⚠️ This is the part that goes beyond the reported bug and is worth a second opinion:
build-auth-001-email-password-flowbuild-dataapi-001-relational-reportbuild-dataapi-002-restock-alert-reportAffected rows:
claude-code-opus-5,claude-code-sonnet-5,codex-gpt-5.4-mini,codex-gpt-5.6,opencode-kimi-k3, and each of their-no-skillscounterparts. Their eval definitions stay inevals/(this PR touches only the JSON), so the next benchmark refresh should repopulate them — they'll just be absent from the site until it runs.Restored — metadata re-attributions that
#129introduced (8 records). Not new data; the same two Build evals moving back to their pre-#129identity:mainbuild-cli-001-bootstrap-app,build-database-001-migrate-postgres-to-supabaseclaude-code-opus-4.8/claude-opus-4-8claude-code-opus-5/claude-opus-5-no-skillsclaude-code-opus-4.8-no-skillsclaude-code-opus-5-no-skillscodex-gpt-5.6@ effort lowcodex-gpt-5.6@ effort medium-no-skillscodex-gpt-5.6-no-skills@ lowcodex-gpt-5.6-no-skills@ mediumIn-flight refresh — possible conflict
The benchmark refresh run started around 16:54 UTC today (run 31121347612) had not landed on
mainas of85c4f6a. Per.github/workflows/eval-refresh.yml, scheduled/manual runs open their own PR onchore/refresh-eval-results-*rather than pushing tomain. If that run produces a refresh PR touchingeval-results.json, it will conflict with this branch and whichever merges second wins — so it's worth checking for that PR before merging. A refresh should regenerate the three SDK evals and should not reintroduce the Opus 4.8 row.Test plan
#129valuesGenerated by Claude Code