models: brand logos for 11 catalog providers, and wire spacexai to xAI - #4439
models: brand logos for 11 catalog providers, and wire spacexai to xAI#4439ZeHuari wants to merge 3 commits into
Conversation
The playground picker fell back to a letter monogram for 16 of the hosted catalog's provider prefixes. Two separate causes, fixed here: - 12 `spacexai/*` Grok models rendered an "S" even though the Grok assets are already bundled — the alias maps only knew `x-ai`. Add `spacexai` -> `xai` to both PROVIDER_ALIASES and HOSTED_PROVIDER_ALIASES. No new asset. The two prefixes share no bare model id, so canonicalization stays unambiguous. - 11 vendors shipped no logo at all. Add SVG marks from @lobehub/icons (MIT) — the same source as the existing minimax/deepseek assets — for nvidia, amazon, kwaipilot, tencent, bytedance, inception, morph, stepfun, arcee-ai, cohere and poolside. Notes on two judgment calls: - `tencent/*` is entirely Hunyuan models, so the Hunyuan mark is used; it reads truer than the Tencent corporate logo at the 12px the badge renders. - Inception ships as `currentColor`, which an <img> cannot inherit, so it would render black on both themes. Pinned to explicit fills per theme. Also regenerate the hosted-id snapshot (174 -> 226) so the guard test sees the vendors the live catalog actually serves. Five stay on the monogram on purpose: sakana, thinkingmachines, inclusionai and interfaze have no upstream mark, and xiaomi ships only a wordmark that is unreadable at 12px. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
`nvidia` and `arcee-ai` were the stand-ins for "unknown catalog provider" in model-helpers' display-name test, and they now resolve through the registry. Swap in vendors that really are unregistered, and pin NVIDIA's branded casing so the registry path stays covered too. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Internal previewPreview URL: https://mcp-inspector-pr-4439.up.railway.app |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review. WalkthroughThe provider registry adds twelve vendors with bundled logo assets, display names, and monogram color classes. The registry maps Merge Risk: ⚪ Minimal · up to This localized change adds provider logos, aligns the spacexai alias with xAI, and refreshes the hosted-model snapshot; no actionable merge-blocking risk remains after normal checks and review. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Regenerating the snapshot (173 -> 226) pulls `openai/gpt-4-turbo` into the hosted set, which flips it from BYOK to source:"mcpjam". Both evals-runner.test.ts and runner-parity.test.ts drive the runner with `model: "gpt-4-turbo"` precisely because it was NOT hosted, so the runner switched to the backend stream path they never mock and 45 tests went red. That reclassification is a real behavioral change and deserves its own reviewed PR rather than riding along with brand assets. Reverted to the base snapshot here; the logos and the spacexai alias need none of it, since the live catalog is authoritative at runtime and the snapshot is only the offline floor. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
What
The playground model picker fell back to a grey letter monogram for 16 of the hosted catalog's provider prefixes — 49 of the 226 models the live catalog serves. This closes 12 of those 16.
Checked against the live catalog (
GET /v1/models, 226 models), not just the checked-in snapshot.1.
spacexai→xai(12 models, no new asset)The catalog serves the newer Grok models under
spacexai/*(grok-4.20-*,grok-4.5,grok-4.6, …). The string appeared nowhere in the repo: both alias maps only knewx-ai. So 12 Grok models rendered an "S" monogram whilegrok_light.svg/grok_dark.pngsat bundled and working for the 4x-ai/*models.Aliased in both
PROVIDER_ALIASES(client) andHOSTED_PROVIDER_ALIASES(shared) so grouping, display name and logo all agree. The two prefixes share no bare model id (grok-4.20vsgrok-4.20-reasoning,grok-4.1-fastvsgrok-4.1-fast-reasoning), sogetCanonicalModelIdstays unambiguous.This is a rebrand in the catalog, not two vendors:
x-ai/grok-4.3,x-ai/grok-4.5andx-ai/grok-build-0.1have moved to thespacexai/prefix.2. Eleven vendors that shipped no logo
SVG marks from
@lobehub/icons(MIT) — the same upstream as the existingminimax_logo.svganddeepseek_logo.svg, so the file convention is unchanged. ~15 KB total.nvidianvidia_logo.svgamazonamazon_logo.svgkwaipilotkwaipilot_logo.svgtencenttencent_logo.svgbytedancebytedance_logo.svginceptioninception_light.svg+inception_dark.svgmorphmorph_logo.svgstepfunstepfun_logo.svgarcee-aiarcee_logo.svgcoherecohere_logo.svgpoolsidepoolside_logo.svgTwo judgment calls worth a look:
tencent— everytencent/*model is Hunyuan (hy-mt2-*,hy3), so this uses the Hunyuan mark. It reads truer at 12px than the Tencent corporate logo. Display name is "Tencent Hunyuan".inception— upstream ships it asfill="currentColor", which an<img src>cannot inherit, so a single asset renders black on both themes and disappears on dark. Split into explicit light/dark fills.Still on the monogram, on purpose
sakana,thinkingmachines,inclusionaiandinterfazehave no upstream mark.xiaomiships only a two-lineXiaomi MiMowordmark, illegible at 12px — the monogram is the better badge. All five are listed inKNOWN_MONOGRAM_PREFIXESwith the reason.Deliberately NOT in this PR: the snapshot regen
shared/hosted-model-ids.generated.tsis stale — 173 ids against the 226 the backend serves. I regenerated it, and it turned 45 eval tests red, so I backed it out.Cause, for whoever picks it up: the regen pulls
openai/gpt-4-turbointo the hosted set, flipping it from BYOK tosource: "mcpjam".evals-runner.test.tsandrunner-parity.test.tsboth drive the runner withmodel: "gpt-4-turbo"precisely because it was not hosted, so the runner switched to the backend stream path those tests never mock — hence a wave ofCannot read properties of undefined (reading 'ok').That is a genuine reclassification with billing implications, not test noise. It wants its own reviewed PR. Nothing here depends on it: the live catalog is authoritative at runtime and the snapshot is only the offline floor, so the logos and the alias work either way.
Verification
#fff) and dark (#18181b) grounds — that's what caught the InceptioncurrentColorproblem and the Xiaomi wordmark.npm run typecheck:clientclean.provider-registry,model-helpers,shared/types,hosted-model-catalog,resolve-synthetic-model-source,model-selector, plus the two eval-runner files that the reverted regen had broken.Unrelated bug spotted
scripts/generate-hosted-model-ids.mjsdefaults tohttps://api.mcpjam.com/v1/models, which returns HTML and makes the script fail outright. It only runs against<deployment>.convex.site/v1/modelsviaMCPJAM_MODELS_URL. Left alone here — not sure which host is meant to be canonical.🤖 Generated with Claude Code