fix(ai): replace decommissioned Groq model IDs - #79
Merged
Merged
Conversation
All four Groq models in the config had been retired by Groq, so every request failed with `model_not_found` and the provider was unusable. Verified against the live Groq API: the previous default `meta-llama/llama-4-scout-17b-16e-instruct` returns model_not_found, while each replacement returns HTTP 200 from /v1/chat/completions. Model IDs double as i18n keys (`settingsModal.ai.models.groq.<id>`, consumed in AISettings.tsx), so the label/hint/category/badge strings are updated across all 7 locales in both `src/i18n/locales/` and `public/locales/`. Without these the dropdown would render raw key paths instead of model names. Note: the non-English strings are machine-translated and would benefit from a native-speaker review.
Vrun-design
approved these changes
Sep 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Groq is currently unusable — all four model IDs in
PROVIDER_MODELS.groqhave been decommissioned by Groq, so every request fails withmodel_not_found.Verified against the live Groq API. The previous default:
GET /openai/v1/modelsreturns 14 models, and none of the four configured IDs are among them.Changes
src/config/aiProviders.ts— replaced the four retired models. Each replacement was smoke-tested against/v1/chat/completionsand returns HTTP 200:openai/gpt-oss-120bopenai/gpt-oss-20bqwen/qwen3.8-27bgroq/compoundOf the 14 models Groq returns, only 6 are chat models — the rest are speech-to-text (
whisper-*), text-to-speech (canopylabs/orpheus-*), and safety classifiers (llama-prompt-guard-2-*,gpt-oss-safeguard-20b). These four are the general-purpose chat models best suited to diagram generation.14 locale files (
src/i18n/locales/andpublic/locales/, 7 languages each) — model IDs double as i18n keys.AISettings.tsx:226-229looks upsettingsModal.ai.models.<provider>.<translateKey>.{label,hint,category,badge}. Changing a model ID without the matching i18n entry makes the dropdown render raw key paths instead of names, so these move together.README.md— the provider table listed the retired model as Groq's default.Test plan
npx tsc --noEmit— cleannpm run lint— cleannpm test— 295 files, 1445 tests passing/v1/chat/completionsmodel_not_foundsrc/i18n/locales/andpublic/locales/verified byte-identical after the changegroqblockNotes for reviewers
Machine-translated strings. The new
label/hint/category/badgestrings for de, es, fr, ja, tr and zh were written without native-speaker review. They follow the tone of the surrounding entries, but a speaker should sanity-check them. Happy to revert any locale to English placeholders if you'd rather handle translation separately.NVIDIA is probably affected too, and is not fixed here.
PROVIDER_MODELS.nvidiastill listsmeta/llama-4-scout-17b-16e-instructandmeta/llama-4-maverick-17b-128e-instruct— the same retired Llama 4 generation under NVIDIA's naming. Different provider and lifecycle, so I did not assume it's broken and had no NVIDIA key to test with. Worth a follow-up issue.Underlying cause. Hardcoded model lists go stale silently — the user just sees a failed request with no hint that the model no longer exists. Fetching
/v1/modelsat runtime with the static list as offline fallback would make this self-healing across every OpenAI-compatible provider. It needs a curation layer (Groq's endpoint returns Whisper and classifier models that don't belong in a diagram-model dropdown), so it's a feature rather than a fix and is deliberately out of scope. Glad to open an issue if there's interest.