mirror of
https://github.com/exo-explore/exo.git
synced 2026-04-17 12:30:29 -04:00
## Motivation In the dashboard model picker sidebar, the Gemma 4 models were showing up under a "Gemma" family with the generic fallback tick/checkmark icon (the default case in `FamilyLogos.svelte`), since no dedicated logo branch existed for `family === "gemma"`. Every other vendor (Meta, NVIDIA, OpenAI, DeepSeek, Qwen, …) has its own brand mark. Gemma is Google's model family, so it should live under a **Google** bucket that future Google-authored models can join, and it should render with a proper Google logo in the same style as its neighbors. ## Changes - `dashboard/src/lib/components/FamilyLogos.svelte`: added a `family === "google"` branch rendering a monochrome Google "G" as a single `<path>` inside the shared `24×24` viewBox with `fill="currentColor"`, matching the other vendor logos. - `dashboard/src/lib/components/FamilySidebar.svelte`: added `google: "Google"` to the `familyNames` display map. - `dashboard/src/lib/components/ModelPickerModal.svelte`: inserted `"google"` into the `familyOrder` array (next to `"llama"`) so the vendor has a deterministic sort position. - `resources/inference_model_cards/mlx-community--gemma-4-*.toml` (16 files): changed `family = "gemma"` → `family = "google"`. `base_model = "Gemma 4 …"` is unchanged, so the model titles still read "Gemma". ## Why It Works The sidebar builds its family list from whatever values appear in `model.family` across the loaded model cards (`ModelPickerModal.svelte` `uniqueFamilies`). Renaming the family string on the 16 Gemma cards from `"gemma"` to `"google"` collapses them into a single "Google" bucket, and the new logo branch + display-name map entry gives that bucket a real brand mark and label. All other logos share the same `w-6 h-6 / viewBox="0 0 24 24" / fill="currentColor"` shape, so inheriting `text-exo-yellow` / `text-white/50` just works. ## Test Plan ### Manual Testing <!-- Hardware: MacBook Pro M3 Max --> - `cd dashboard && npm install && npm run build` — dashboard builds cleanly. - `uv run exo`, opened `http://localhost:52415`, clicked **SELECT MODEL**: - sidebar shows a **Google** entry with a monochrome Google "G" logo in the same style as Meta / NVIDIA / etc. - old "Gemma" entry with the generic tick is gone. - clicking **Google** filters to the Gemma 4 variants (e2b / e4b / 26B A4B / 31B). - hover/selected color states switch between `text-white/50` and `text-exo-yellow` correctly. ### Automated Testing - No new tests — this is a cosmetic grouping/logo change. Existing dashboard build verifies the Svelte + TS compiles.