no models in custom provider
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- clojure
- Área
- backend-api-design
Línea de trabajo
Start by tracing how configured providers and their static models are initialized and added to db[:models], then check when model sync completes relative to chat startup. Reproduce with the supplied fetchModels: false configuration and inspect /providers-list, /doctor, and a chat request. Done when the custom model is available and the default model is shown and usable.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
ECA 0.123.2 reads a custom provider from =config.json= correctly, but the provider is not registered as an available runtime model. As a result:
- =/config= shows the provider and =defaultModel= correctly
- =/providers-list= shows the provider as configured, but with =0 models=
- =/doctor= shows empty =Default model:=
- chat requests can fail with:
#+begin_src text :results output
API url not found.
Make sure you have provider '' configured properly.
#+end_src
This seems to affect custom OpenAI-compatible providers configured with =api: "openai-chat"= and explicit static models in config.
To Reproduce
- Create =~/.config/eca/config.json= with a custom provider, for example:
#+begin_src json :results output
{
"$schema": "https://eca.dev/config.json",
"defaultModel": "aitunnel/qwen3.5-397b-a17b",
"providers": {
"aitunnel": {
"api": "openai-chat",
"url": "https://api.aitunnel.ru/v1",
"key": "REDACTED",
"fetchModels": false,
"models": {
"qwen3.5-397b-a17b": {}
}
}
}
}
#+end_src - Start ECA server.
- Open chat and run =/config=.
- Run =/providers-list= and =/doctor=.
- Send a normal chat message.
Expected behavior
If a custom provider is present in =/config= and has explicit static models in =providers..models=, ECA should register those models as available runtime models even when =fetchModels=false=.
Expected result:
- =/providers-list= should show at least 1 model for the custom provider
- =/doctor= should show a non-empty =Default model:=
- chat should use =aitunnel/qwen3.5-397b-a17b= successfully
Actual behavior
- =/config= shows the merged config correctly, including:
- =defaultModel "aitunnel/qwen3.5-397b-a17b"=
- the custom provider
- =fetchModels false=
- the static =models= entry
- =/providers-list= shows:
#+begin_src text :results output
aitunnel ✓ configured
API Key · (config) · active
api: openai-chat
url: https://api.aitunnel.ru/v1
fetchModels: false
0 models
#+end_src - =/doctor= shows:
#+begin_src text :results output
Default model:
Logged providers:
openai: Unknown
#+end_src
- sending a chat message can fail with:
#+begin_src text :results output
API url not found.
Make sure you have provider '' configured properly.
#+end_src
Doctor
#+begin_src text :results output
ECA version: 0.123.2
Server cmd: /home/zoya/.emacs.d/eca/eca server
Workspaces: /home/zoya/.config/eca
Default model:
Logged providers:
openai: Unknown
#+end_src
Additional context
From source inspection, this looks like a runtime model registration / initialization issue rather than a config parsing issue:
- =/config= proves the config is loaded correctly
- custom providers with =api "openai-chat"= appear to be supported by runtime dispatch
- the failure seems to happen because the custom model does not end up in =db[:models]=
- chat/model selection then has no valid runtime model to use
- there may also be an initialization race, because model sync is started asynchronously during startup
Relevant symptoms are consistent with:
- static models from custom providers not being surfaced into available models
- or chat starting before model sync completes
- or both
- Lenguaje dominante
- Clojure
- Estrellas
- 1k
- Forks
- 82
- Merge medio
- 3 d 39 min
- PR fusionados (30 d)
- 15
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de editor-code-assistant/eca
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
editor-code-assistant/eca#655 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
editor-code-assistant/eca#652 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
editor-code-assistant/eca#648 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
editor-code-assistant/eca#644 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Add the ability to see what changed in the system promptPosiblemente ocupada @zikajk la tomó hace 9 días. Abiertoenhancement
editor-code-assistant/eca#642 · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de editor-code-assistant/eca
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
IOP MCP
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
calcit-lang/calcit#2133 ·
Los mantenedores suelen responder en 1 día
-
worker/start rejects middleware supplied as a VarPosiblemente ocupada @rajp152k la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Profiler (Remotery) leaks a socket for every connection that fails the WebSocket handshakePosiblemente ocupada @rthery la tomó hace 3 días. Abiertotriage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día