2.2 KiB
2.2 KiB
id, number, title, status, priority, sprint, links, agentRefs, createdBy, updatedBy, createdAt, updatedAt, version
| id | number | title | status | priority | sprint | links | agentRefs | createdBy | updatedBy | createdAt | updatedAt | version | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9db40467-a826-4dac-a679-e7934cbdda81 | 98 | Profil cloud provider catalogue (ex: zai) : modèle choisi écrasé par glm-5.2 au spawn | closed | high | null |
|
|
1784966899811 | 1784983186248 | 5 |
Symptôme
Dans le wizard de création de profil AI OpenCode (first-run), quand l'utilisateur choisit un cloud provider du catalogue (ex: zai / ZAI Code) puis sélectionne un modèle spécifique, après sauvegarde l'agent tourne en glm-5.2 quel que soit le modèle choisi.
Périmètre
Bug backend (couche application/infrastructure du spawn OpenCode). Suite logique et distincte du ticket #97 (qui réglait l'exclusion mutuelle opencode vs opencodeProvider — désormais fixée).
Cause racine (diagnostiquée, à confirmer par Architect)
- La persistance est correcte :
profiles.jsonconserve bienopencodeProvider.model= modèle choisi.glm-5.2est absent de tout le code IdeA ; c'est le fallback interne de la CLI OpenCode quand elle ne sait pas résoudre le modèle demandé. - Le modèle est perdu au spawn :
- IdeA écrit
opencode.jsonavecmodel: "zai/<choix>"mais sans blocmodelspour les providers catalogue connus (crates/application/src/agent/lifecycle.rs:2796-2821,crates/infrastructure/src/assistant/mod.rs:447-466). Elle suppose OpenCode built-in. - Or
zain'est connu d'OpenCode que via son cache models.dev, et IdeA isoleXDG_CACHE_HOMEvide au spawn (lifecycle.rs:2386,2405;assistant/mod.rs:272,282). → OpenCode ne résout nizaini le modèle → fallback silencieuxglm-5.2.
- IdeA écrit
- Pourquoi ça marche en local (llama.cpp) et custom : ils émettent un bloc
models(assistant/mod.rs:371-379,:457-460).
Exemples impactés
Tout provider cloud connu uniquement via le cache models.dev (zai, et vraisemblablement tout provider non built-in dans OpenCode). Les providers hardcodés dans OpenCode (anthropic, openai, openrouter) fonctionnent malgré l'absence de bloc models.
Lié à
- #97 (relatesTo) : exclusion mutuelle provider — prérequis déjà livré.