Fixed
- jcode model validation freeze (for real this time) — jcode has a hardcoded model whitelist that rejects bare model names like
gpt-oss-120bvia--modelflag. The v0.3.47 fix usingJCODE_MODELenv var didn't actually work — jcode silently ignores it for theopenai-compatibleprovider. The real fix uses two strategies:- Native providers: For providers that jcode supports natively (Groq, Cerebras, DeepInfra, Scaleway, Together, Hugging Face, Fireworks, Chutes, OpenRouter, Perplexity, ZAI, Mistral), we now use
--provider groqinstead of--provider openai-compatible. Native providers accept namespaced model names likeopenai/gpt-oss-120bwithout validation issues. - OpenAI-compatible fallback: For providers without a native jcode match (NVIDIA NIM, SambaNova, etc.), we keep
--provider openai-compatiblebut ensure model IDs always have a namespace prefix (openai/gpt-oss-120binstead ofgpt-oss-120b) and set a placeholderOPENROUTER_API_KEYto satisfy jcode's false credential check on namespaced models.
- Native providers: For providers that jcode supports natively (Groq, Cerebras, DeepInfra, Scaleway, Together, Hugging Face, Fireworks, Chutes, OpenRouter, Perplexity, ZAI, Mistral), we now use
Added
JCODE_NATIVE_PROVIDERSmapping — New provider mapping table that routes 12 of our providers to jcode's native provider system, with correct env var names extracted from the jcode binary. This gives better compatibility and avoids theopenai-compatibleprovider's model validation bugs.ensureJcodeModelPrefix()helper — Ensures model IDs always have a namespace prefix (e.g.gpt-oss-120b→openai/gpt-oss-120b) so jcode's whitelist validation is bypassed.