P0: the app's provider setting never reaches the brain — every non-Anthropic provider is dead in shipped builds #124
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Affects every shipped build today. Onboarding offers six providers; in practice only Anthropic has ever worked. Fix is in PR #122, live for no one until that merges and a brain is rebuilt.
Symptom
A user who picks Groq (or OpenAI, Grok, Gemini, Ollama) gets
{"error":"llm unavailable"}on every message, Tools on and Tools off, with no indication why.Root cause — a name mismatch across the launcher/brain boundary
SOUL_LLM_PROVIDER/SOUL_LLM_BASE_URL, and puts the provider's key inANTHROPIC_API_KEYandSOUL_API_KEY(installer/macos/neuron-daemons.sh:288-300).NEURON_LLM_0_URL/NEURON_LLM_0_FORMAT(chat.el), which nothing sets in a customer build.use_openaiis always false: every turn goes toapi.anthropic.comcarrying, for example, a Groq key, and comes back 401 → "llm unavailable".PATCH /api/configdoes not close the gap either —handle_config(studio.el:36) ignoresllm_url/llm_key/llm_formatentirely.Evidence — side-by-side, probe server logging every hit
Identical environment (the launcher's own variables, a Groq-shaped endpoint and key):
sha256 15cf7d1b…, matches the manifest pin){"error":"llm unavailable"}{"error":"llm unavailable"}model: llama-3.3-70b-versatile[llm] using legacy ANTHROPIC_API_KEY fallbackPOST /v1/chat/completions,Authorization: Bearer gsk_…Fix (in PR #122)
Brain-side fallbacks only —
llm_base_url,llm_wire_formatandagentic_api_keyhonour the launcher's own variable names, deriving the wire format from the provider id. No launcher or app change required, and Anthropic deliberately still returns "" so its native path is untouched (endpoint configurability remains #62).Note
Not the cause of the round-9 test failure — that was independently traced to a StallWatchdog regression (see PR #122 comment). This is a separate, older defect.
🤖 Generated with Claude Code