Skip to content

refactor(eval): redesign viewer with minimal monochrome UI - #1

Merged
kirang89 merged 8 commits into
mainfrom
feat/eval-viewer
Mar 11, 2026
Merged

refactor(eval): redesign viewer with minimal monochrome UI#1
kirang89 merged 8 commits into
mainfrom
feat/eval-viewer

Conversation

@kirang89

Copy link
Copy Markdown
Contributor

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

  • Monochrome palette: White background with neutral greys for surfaces/borders; color reserved for semantic elements (deltas, badges, graphs)
  • Typography: Inter for UI text, JetBrains Mono for code blocks and chart tick labels
  • Chart series: Grey (#b0b0b0) for Base, near-black (#1a1a1a) for Trained — clear contrast without color noise

Header & Landing

  • Simplified header: "Eval Viewer" on the left, light/dark theme toggle on the right
  • Removed hero sales copy ("Read failures, not just scores") and feature stat cards
  • Upload panel now spans full width with concise instructions

Layout & Alignment

  • Failure Stage Transition Matrix and Per-Difficulty Pass Rate rendered as side-by-side cards (50/50 width)
  • Fixed grid alignment so all sections share consistent left/right edges
  • Code blocks use pre-wrap to prevent horizontal overflow in side-by-side comparison view

Information Density

  • Replaced bubble-dot matrix with compact data table (colored numbers only)
  • Removed collapsibility from GRPO Training Impact sections (Imperative Style Bias, Reward Bimodality, Difficulty Tier, Frozen Problems) — always visible, compact layout
  • Merged stat badges (Time, Length, Tok/s) into the score pills row in the comparison detail panel
  • Code block expanded by default (no longer behind a collapsible)
  • Removed Readout summary panel from comparison view

Tab Renaming

  • "Aggregate Analysis" → Overview
  • "Problems" → In-depth Analysis

kirang89 added 8 commits March 1, 2026 11:35
- 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
@kirang89
kirang89 merged commit bf9255b into main Mar 11, 2026
1 check passed
@kirang89
kirang89 deleted the feat/eval-viewer branch March 11, 2026 12:38
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.

1 participant