feat(site): default to successful runs, derive filter lists, show local time - #311
Merged
Merged
Conversation
… local time
Three fixes to the benchmarks page.
1. Result filter defaults to `success` instead of `all`. 15 of the 59 published records are
failures or cancellations, and they were the first thing a visitor saw.
2. Benchmark and Type filters are populated from the records at load time instead of from
hardcoded markup. The list said tau2/swebench/skillsbench, so two whole benchmarks were
unreachable in the UI despite having published runs:
derived : rh-swebench, skillsbench, spreadsheetbench, swebench, tau2
hidden : rh-swebench, spreadsheetbench
The Type filter had the same defect and is fixed the same way — it listed smoke/pilot/full
and would have hidden `runnable-subset-43`, which is also present in the data. A new
benchmark or tier now appears the moment it publishes a run, with no markup change.
The remaining inline `all` option is only a pre-hydration fallback so the control is never
empty if the fetch fails; the current selection survives re-hydration.
3. Timestamps render in the viewer's own timezone. The old code did
`.replace("T"," ").replace("Z","")`, which DISPLAYED UTC while looking like local time —
the worst of both, since a reader in UTC+3 saw a run they started at 16:50 labelled 13:50
with nothing to signal the offset. Now parsed and formatted via toLocaleString, with the
resolved zone shown once in the Date column header so the values are unambiguous. An
unparseable date falls back to the raw string rather than "Invalid Date".
The live "Running now" panel needed no change: it renders elapsed duration, not an absolute
clock, so it was never zone-dependent.
JOB_RE's bench allowlist is deliberately left explicit — it parses workflow job names to spot
in-flight runs and must not match "plan legs" or "aggregate history". rh-swebench arrived as a
manual import rather than a CI job, so it can never appear there.
Verified: node --check passes; the derivation was run against the real published
benchmarks.json (59 records) and the committed fixture; the date change checked in
Asia/Jerusalem, where 2026-07-24T13:50:51Z now correctly reads 04:50:51 PM.
Signed-off-by: Eran Raichstein <eran.raichstein@gmail.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
|
❌ Automatic Labeling Failed An error occurred while trying to automatically label this pull request. Please check the workflow logs for details and add labels manually. |
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.
Three fixes to benchmarks.html.
1. Result filter defaults to
success15 of 59 published records are failures/cancellations, and they were the first thing a visitor saw.
2. Benchmark + Type filters derived from the data, not hardcoded
The markup listed only
tau2/swebench/skillsbench, so two whole benchmarks were unreachable despite having published runs:The Type filter had the identical defect — it listed
smoke/pilot/fulland would have hiddenrunnable-subset-43, which is also in the data. Fixed the same way, since the reasoning applies equally.A new benchmark or tier now appears the moment it publishes a run. The inline
alloption remains only as a pre-hydration fallback so the control is never empty if the fetch fails; the current selection survives re-hydration.3. Local timezone
The old code did
.replace("T"," ").replace("Z","")— which displayed UTC while looking like local time, the worst of both. A reader in UTC+3 saw a run they started at 16:50 labelled13:50with nothing signalling the offset.Now
toLocaleStringin the browser's own zone, with the resolved zone shown once in the Date header so values are unambiguous. Unparseable dates fall back to the raw string rather thanInvalid Date.2026-07-24T13:50:51Z2026-07-24 13:50:5107/24/2026, 04:50:51 PMDeliberately unchanged
JOB_RE's bench allowlist stays explicit. It parses workflow job names to detect in-flight runs and must not matchplan legsoraggregate history.rh-swebencharrived as a manual import, never a CI job, so it cannot appear there.Verification
node --checkpasses; derivation run against the real publishedbenchmarks.json(59 records) and the committed fixture; date change checked in a UTC+3 zone.🤖 Generated with Claude Code