Files
IdeaSDK/.ideai/tickets/98/issue.md
Blomios e1b1c1e103 restore .ideai/tickets/ store versionnέ + corrige .gitignore
- Restaure .ideai/tickets/ depuis 851f1f8^ (167 tickets + index.json + counter.json)
- Enlève les ignore rules .ideai/tickets/ dans .gitignore (ligne 51 et 75)
- Permet le suivi durable du store tickets futur
- Ne touche pas sdk/ (reste untracked)
2026-07-28 20:18:00 +02:00

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
kind agent_id
agent a6ced819-b893-4213-b003-9e9dc79b9641
kind
user
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.json conserve bien opencodeProvider.model = modèle choisi. glm-5.2 est 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 :
    1. IdeA écrit opencode.json avec model: "zai/<choix>" mais sans bloc models pour 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.
    2. Or zai n'est connu d'OpenCode que via son cache models.dev, et IdeA isole XDG_CACHE_HOME vide au spawn (lifecycle.rs:2386,2405 ; assistant/mod.rs:272,282). → OpenCode ne résout ni zai ni le modèle → fallback silencieux glm-5.2.
  • 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é.