feat(gui): add Frontier benchmark guide page#144
Conversation
Ship a snapshot-based model comparison guide with domain/board filters, ECharts charts (scatter, cost stack, score/value, by-reasoning), and en/de/ko/zh copy.
Satisfy @typescript-eslint/no-unused-vars in CI.
Local-only Playwright helper; not part of the feature.
Move Frontier off the stacked page/card layout into a full-bleed rail + detail shell (domain filters + board list on the left, chart/ranking on the right), matching Combos/Providers.
|
Review verdict (independent audit, 2026-07-18): request changes — please keep in draft / rework before this can merge. The page concept is useful, but three blocking findings:
Also noted (P2): board descriptions/axis labels/tooltips stay English under de/ko/zh; Terminal-Bench stores harnesses (codex, claude-code…) in the Happy to merge a reworked version — docs-site placement or lazy-loaded GUI route, with a provenance manifest (URL + date + version per row) and estimate/measurement separation. The verified rows (DeepSWE, FrontierCode, FrontierSWE, ProgramBench scores, Arena scores, Cybench scores) are solid work worth keeping. |
Convert route to React.lazy + modular ECharts, add per-board provenance and per-row costKind, disable score/$ / Best value unless costs are uniformly measured, fix AA Coding GPT-5.6/Grok figures, and add ranking unit tests.
|
Thanks for the independent audit - converting this to draft and starting the rework. Done in the latest push
Still intentionally open
Happy to keep iterating in draft until you’re comfortable un-drafting. |
Keep Frontier nav/lazy route alongside Combos full-bleed shell and retain both frontier.* and cws.* i18n keys after the combo stack landed.
Pull ProgramBench averages from the extended board as measured, localize board titles/axes/notes, label harness vs effort, cap mobile chart height, and document the snapshot refresh process.
|
Closed the remaining open items on this draft:
Happy to un-draft when you’re comfortable with the review. |
Without it the action cannot list PR files, skips writing the changed-files list, then still passes --changed-files-from and the CLI exits 1 on ENOENT.
Build dynamic frontier.board.* TKeys via join() so the hardcoded-UI-string rule does not flag the lookup helper.
CLI 0.7.8 emits baseline reports with schemaVersion 3; the old v2.1.0 action only accepted 1–2, so ensure-json-report forced SCAN_STATUS=1 on every PR even with blocking: none.
|
Should be done! |
|
Ready to merge @lidge-jun |
…e docs site The GUI was the wrong home for 2.6k lines of hand-maintained leaderboard snapshots plus a new ECharts runtime. The Astro docs site (GitHub Pages, slow-update-tolerant) is the natural surface: - docs-site Benchmarks page in en/ko/zh-cn, sidebar entry under Guides - FrontierBoards.astro: per-board provenance (url/capturedAt/license), costKind honesty note, vanilla ECharts cost-vs-score scatter (no React), data table with score/$ only when every row is source-measured - data + i18n (104 keys x 3 locales) extracted from PR #144; German dropped (site ships en/ko/zh-CN); refresh checklist in src/data/README-frontier.md - echarts added to docs-site only Verified: bun run build (58 pages), headless Chrome render of en + ko pages (charts draw, honesty notes and best-value badge show), zh-cn markup check. Data and concept credited to Wibias (PR #144).
…per-domain pages User feedback: one long page with 10 boards was too much. Now a top-level Benchmarks category (collapsed) with an Overview index page plus five domain pages (coding 6 boards, frontend/terminal/security/intelligence 1 each) x en/ko/zh-cn = 18 pages. FrontierBoards.astro gains boards/intro props; the guides/benchmarks single pages are removed. Domain mapping follows PR #144's frontier-domains.ts. Verified: astro build (73 pages), headless Chrome render of ko overview (sidebar category + domain links) and ko coding page (6 charts, honesty notes, best-value badge), curl 200 + hreflang for en/ko/zh-cn.
|
Direction update from the maintainer side: we ported the benchmark data + concept to the docs site instead of merging this into the GUI. Rationale: half the diff is hand-maintained leaderboard snapshots, and the docs site (GitHub Pages, Astro Starlight) tolerates slow/manual data refreshes better than the live GUI runtime — no new ECharts/React bundle in the dashboard, and the data still ships. What landed on
What we deliberately did NOT take: the GUI page itself, the React/ECharts dashboard runtime, the domain/filter UI, and the react-doctor workflow change. Thanks for the well-structured dataset and the provenance/costKind discipline — it made the port straightforward. Closing this as superseded-by-docs-site; if you want the GUI version later, the docs pages and your branch can coexist. |
Summary
Addressed
React.lazyFrontier route + tree-shaken EChartscostKind; score/$ and Best value only when uniformly measuredmeasured(GPT-5.5 xhigh/high/default + Opus 4.7 xhigh fixed)modeKindon boards; FrontierSWE / Terminal-Bench / SWE Marathon label filters + ranking column as Harnessgui/src/data/FRONTIER.mdrefresh checklisttests/frontier-rank.test.tscovers ranking + ProgramBench + modeKindTest plan
#frontier— chunk load / full-bleed workspacebun test tests/frontier-rank.test.ts