Skip to content

feat(site): default to successful runs, derive filter lists, show local time - #311

Merged
eranra merged 1 commit into
skillberry-ai:mainfrom
eranra:feat/bench-page-ux
Aug 9, 2026
Merged

feat(site): default to successful runs, derive filter lists, show local time#311
eranra merged 1 commit into
skillberry-ai:mainfrom
eranra:feat/bench-page-ux

Conversation

@eranra

@eranra eranra commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Three fixes to benchmarks.html.

1. Result filter defaults to success

15 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:

derived : rh-swebench, skillsbench, spreadsheetbench, swebench, tau2
hidden  : rh-swebench, spreadsheetbench

The Type filter had the identical defect — it listed smoke/pilot/full and would have hidden runnable-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 all option 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 labelled 13:50 with nothing signalling the offset.

Now toLocaleString in 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 than Invalid Date.

before after (Asia/Jerusalem)
2026-07-24T13:50:51Z 2026-07-24 13:50:51 07/24/2026, 04:50:51 PM

Deliberately unchanged

  • The live "Running now" panel needed nothing: it renders elapsed duration, not an absolute clock.
  • JOB_RE's bench allowlist stays explicit. It parses workflow job names to detect in-flight runs and must not match plan legs or aggregate history. rh-swebench arrived as a manual import, never a CI job, so it cannot appear there.

Verification

node --check passes; derivation run against the real published benchmarks.json (59 records) and the committed fixture; date change checked in a UTC+3 zone.

🤖 Generated with Claude Code

… 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>
@eranra
eranra merged commit 1f0c839 into skillberry-ai:main Aug 9, 2026
8 of 9 checks passed
@skillberry-bot

Copy link
Copy Markdown
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.

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.

2 participants