Add per-model pages and explorer deep links#70
Open
MaxGhenis wants to merge 1 commit into
Open
Conversation
Every model gets a statically generated page at /model/[id]: country ranks and headline pills, per-program scores sorted hardest-first, binary eligibility-flag accuracy computed from prediction rows, and the model's worst misses on positive references, each linking into the scenario explorer. Pages are server components over the bundled summary, so they ship no additional client JS, and each carries its own metadata for social previews. Leaderboard rows and the explorer's detail dialog link to them; the sitemap lists them. The explorer now mirrors its state into the URL (?scenario=..., ?cell=variable~model) via replaceState, applies deep links on mount (turning off the frontier-only filter when the linked model needs it), and clears both params on country switch since ids are country-specific. Deep-linking exposed a latent UX bug: the explanation sidecar fetch was viewport-gated, but an open dialog makes the background inert, so a deep-linked dialog could never trigger the fetch and showed "Loading explanation text" forever. Opening any detail dialog now starts the fetch directly. Supersedes the stale draft #23, rebuilt on the split-data stack. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The site is one page with one shareable parameter (
?country=). Benchmark sites spread through deep links — "look at this model", "look at this cell" — and per-model pages are where search traffic for " tax accuracy" can land. The visual design stays exactly as is; this is an information-architecture change.What
Per-model pages (
/model/[id], statically generated for all 13 models in the snapshot):Explorer deep links:
?scenario=scenario_007&cell=snap~claude-opus-4.7opens that household with that dialog. State mirrors into the URL viareplaceStateon every selection; country switches clear the country-specific params; deep links to non-frontier models disable the frontier-only filter so the linked column is visible.Bug found by verification: the lazy explanation fetch (from #61) was viewport-gated, but
<dialog>.showModal()makes the background inert — so a deep-linked dialog could never trigger the fetch and sat on "Loading explanation text…" forever. Opening any detail dialog now starts the fetch directly. Screenshots in the thread show before/after.Verification
19 bun tests pass (6 new for the page selectors), lint clean, production build generates all 19 static routes, and headless screenshots confirm: model page renders both country sections, and the deep link opens the dialog with derivation + reasoning text fully loaded.
🤖 Generated with Claude Code