Two fixes for the HF Space UI:
1. Leaderboard crashed with "'str' object has no attribute 'get'"
because upload_result() serializes BenchmarkResult.environment as
str(result.environment) when pushing to the HF Dataset, but
_flatten_result called .get() on it as if it were a dict.
Defensive parse: accept dict, stringified dict, or JSON object.
2. Stats ribbon (Tasks/Tiers/Browser/Judge counts) was hardcoded to
the v0.3 values (20/5/2/6). Replaced with _compute_stats() which
calls load_all_tasks() at startup and derives the numbers from
the live task corpus, so the ribbon stays in sync with the
tasks/ directory without manual edits.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous redesign passed radius_size/block_radius/shadow_drop/shadow_spread
to themes.Base().set() which are either constructor-only or version-specific,
causing the HF Space to runtime-error at startup. Drop those kwargs and wrap
the whole theme build in a try/except that falls back to plain Base() so any
future unknown kwarg degrades gracefully instead of crashing the Space.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Apply the shared OpenClaw aesthetic — dark backgrounds (#0e1015 layered),
signature red accent (#ff5c5c), Inter + JetBrains Mono typography,
whisper-thin color-mix borders, pill tab switcher, and rise animations.
Replaces the default Gradio Base theme with custom CSS and theme tokens.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix gateway: --allow-unconfigured + token auth for headless container
- Fix client: use cli client ID/mode + full operator scopes
- Add 11 preset models with Submit All button
- Open-source models use HF Inference API (no extra keys needed)