Files
IdeA/.ideai/memory/f35-launch-status-done-config-crud-blocked.md
Blomios a244f32f31 chore(ideai): versionne le store tickets/sprints/mémoire du sprint Modeles locaux
Store d'orchestration du sprint « Modeles locaux » : sprint 883534aa,
tickets #35/#36 (et #32/#37–#41 du store), compteurs et index, notes
mémoire de livraison (#35 CRUD/statut, #36 multi-profils, OpenCode↔llama.cpp).

Runtime transitoire volontairement exclu (background-tasks/, agent scratch
testllamacpp.md).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 15:50:46 +02:00

1.8 KiB

name, description, metadata
name description metadata
f35-launch-status-done-config-crud-blocked F35.1 UI statut de lancement du serveur local livrée+verte ; F35.2 config CRUD bloquée sur un DTO figé qui ne matche pas le wire réel + delete manquant.
type
project

Ticket #35 sur feature/modeles-locaux.

F35.1 LIVRÉ (vert) : événements model_server_status_changed/agent_launch_failed déjà exposés via domain://event. Consommés dans useAgentsmodelServerStatusByServer (par serverId) + launchFailureByAgent (par agentId). Badge ModelServerLaunchBadge monté par ligne dans AgentsPanel, corrélé via profile.opencode.localModelServerId. Contrat réel ≠ DTO figé du ticket : serverId sur l'enveloppe (pas par état) ; états camelCase notConfigured|probing|starting|ready{reused}|failed{code,message} ; PAS de baseURL/model émis dans le statut. Je me suis aligné sur le wire réel.

F35.2 BLOQUÉ — 3 gaps backend remontés à Main :

  1. (bloquant) save_model_server/list_model_servers transmettent le domaine LocalModelServerConfig en serde(transparent), forme IMBRIQUÉE : {id, kind:"llamaCpp", name, endpoint:{baseURL,port}, model:{id,label,path?,servedName}, binary?, args, autoStart, stopPolicy}. Le DTO figé du ticket est plat et FAUX (kind "llamacpp", baseURL/port/modelPath/servedModelName/binaryPath à plat). Pire : model exige id+label non-vides (LocalModelRef::new) absents du DTO figé → payload figé rejeté. Besoin arbitrage Architect : (A) couche DTO plate app-tauri qui remplit model.id/label, ou (B) MAJ du DTO figé vers la forme imbriquée + sémantique de model.id/label.
  2. Pas de commande delete_model_server.
  3. (côté moi) créer ModelServerGateway/port/adapter une fois le contrat tranché.

Saisie simple de localModelServerId (F36) laissée en place, pas de régression. tsc propre ; suite 593/593.