Summary rows now use the dash cards' visual language: a 3-column grid
of forge icon + repo link, the repo's language distribution bar, and a
right-aligned change count — filling the dead space between name and
count. Sources without an icon (bugzilla) keep the text label.
github.svg and mozilla.svg are white-filled for the dark dash cards
and vanished on the white timeline cards, so forgeIcon() is now
background-aware and serves new dark-filled variants on light
surfaces. The previously copy-pasted forgeIcon in DashPage and
ProjectPage moved to a shared lib/forge.ts, and DashPage's
repo-languages shaping became the shared useRepoLanguages() hook used
by both dash and timeline. The /activity prerender prefetches
repo-languages so icons and bars bake into the crawler snapshot.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LY4nbfHC9qt726gVrdAh3X
Add SVG icons for each forge before the repo name on dashboard cards.
Icons sourced from user-provided SVGs in ui/public/.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>