v103.0.5lumaweave2026-06-02

WCAG badge reads single source of truth — card and top bar now agree

Safety-critical governance fix. The theme-card WCAG badge was computing a single flattering pair (textPrimary/bg — always AAA), while the top-bar StatusPill reads getAccessibilityProfile (4 pairs, honest multi-pair aggregate). Card now reads the same source as the top bar; they cannot drift.

v103.0.52026-06-02
  • ·CategoryTheme.tsx now reads getAccessibilityProfile(preset.id) — same function as StatusPill — replacing the standalone computeWCAGResult(textPrimary, bg) call
  • ·Badge derives wcagLabel/wcagLevel identically to StatusPill and uses the same lw-wcag-* CSS classes (topbar.css) — one visual language
  • ·Tooltip now shows all weak pairs (not just text/bg), explaining WHY a theme is AA/partial
  • ·Expected: solar/midnight → AAA, void/agartha-dusk → AA, obsidian/agartha-dream → partial (vs. previous incorrect "all AAA")
  • ·"AA-large" type cleanup was already done in v102.0.4 — step 2 was a no-op