refactor(eval): redesign viewer with minimal monochrome UI - #1
Merged
Conversation
- Extract usage (prompt/completion/total tokens) from API response - Compute tokens_per_sec from usage and elapsed time - Switch to time.monotonic() for robust timing - Add detect_imperative_style() for OCaml imperative pattern detection - Write _meta header line in completions JSONL with run aggregates - Add run_id and timestamp to every completion record - Add percentile latency (p50/p90/p99), token aggregates, avg_tpr, completion length percentiles, and imperative_ratio to metrics
- Auto-detect JSONL vs CSV input, skip _meta lines - Add stage migration matrix, stage progression classification - Add per-difficulty deltas, score/length distributions - Add imperative style comparison and frozen problem detection - Extended CLI output with new metric rows and migration table
Single static HTML file (no server, no build) with two modes: - Dashboard: 13 metric cards, 6 charts, failure table, problem list - Comparison: side-by-side code, 7 filters, stage migration matrix, GRPO Training Impact panel (imperative bias, reward bimodality, frozen problems, difficulty tier analysis) Catppuccin Mocha/Latte themes, lazy highlighting, batched rendering.
…rt refresh - Remove !\w from imperative regex (false positives with boolean not) - Only show score deltas on Current panel, not Baseline (was inverted) - Use requestAnimationFrame for chart rebuild on theme toggle - Update module docstring to mention JSONL output
…headers - Remove empty rows/columns from migration matrix - Abbreviate column headers (comp, tc:syn, exec:tf, etc.) with tooltip for full name - Fixes clipping at 1024px with 9+ failure stages
- Simplify header to 'Eval Viewer' with light/dark toggle - Switch fonts to Inter (UI) and JetBrains Mono (code) - Apply monochrome palette, retain colors for deltas/badges/graphs - Use grey/black for Base/Trained chart series - Remove hero sales copy, expand upload panel to full width - Fix code overflow with pre-wrap in side-by-side comparison - Replace bubble matrix with compact data table - Convert matrix and per-difficulty sections to side-by-side cards - Remove collapsibility from GRPO impact sections - Merge stat badges into score pills, expand code by default - Rename tabs: Overview, In-depth Analysis - Remove Readout summary panel - Fix grid alignment across all sections
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.
Summary
Redesigns the eval viewer (
eval/viewer.html) with a clean, minimal monochrome aesthetic while preserving functional color usage for deltas, badges, and charts.Changes
Visual Design
#b0b0b0) for Base, near-black (#1a1a1a) for Trained — clear contrast without color noiseHeader & Landing
Layout & Alignment
pre-wrapto prevent horizontal overflow in side-by-side comparison viewInformation Density
Tab Renaming