fix(agent): validation robuste des modeles Nvidia (payload production + repli 404/410) + logo noir/blanc
Validation: - _validate_chat_models utilise le payload de production (temperature 0.2, sans max_tokens) : un 200 a la validation == 200 a l'usage reel. - Race corrigee : payload reconstruit par modele (plus de noms croises entre requetes concurrentes) — la v5.1.8 retombait par intermittence sur la liste brute (68 modeles dont la plupart en 404/410). - Retente une fois sur timeout/5xx (les modeles lents mais fonctionnels survivent) ; rejette les 4xx (404 inconnu, 410 retire) ; garde les 429. - Verifie en live contre l'API NVIDIA : 12 modeles valides au lieu de 68. Repli runtime: - LLMClient._http_complete : sur 404/410, retente une fois avec le modele par defaut du provider et marque un notice dans LLMResponse. - AgentEngine emet un evenement SSE "notice" (bandeau .fd-ap-notice dans le panneau Agent, reset a chaque conversation) ; le modele reel est persistee. UI: - FAB (rond bas droite) et logo header du panneau : rond noir/blanc qui suit le theme clair/sombre (--text-primary / --bg-primary), eclair monochrome SVG a la place de l'emoji robot. Tests: - 2 nouveaux tests (429 garde / 410 retire ; repli runtime sur 410). - 278 tests passent.
This commit is contained in:
@@ -1,5 +1,40 @@
|
||||
# Changelog — FlowDeck
|
||||
|
||||
## v5.1.9 (2026-09-07) — Validation robuste des modèles Nvidia + logo Agent noir & blanc
|
||||
|
||||
> La liste Nvidia « diminuée » de la v5.1.8 contenait encore des modèles en
|
||||
> erreur 404/410. Deux causes réelles : (1) le payload de validation ne
|
||||
> correspondait pas à celui utilisé au runtime et un `payload` partagé entre
|
||||
> les requêtes concurrentes envoyait des noms de modèles croisés (race) ;
|
||||
> (2) rien ne protégeait l'usage si un modèle devenait indisponible après
|
||||
> validation.
|
||||
|
||||
### Validation des modèles (fournisseur bruité)
|
||||
- `_validate_chat_models()` utilise désormais le **payload de production**
|
||||
(`messages` + `temperature: 0.2`, sans `max_tokens`) : un modèle qui répond
|
||||
200 à la validation répond aussi 200 à l'usage réel.
|
||||
- **Race fixée** : le payload est reconstruit pour chaque modèle (plus de nom
|
||||
de modèle croisé entre requêtes concurrentes) — c'est pourquoi la v5.1.8
|
||||
retombait par intermittence sur la liste brute non validée.
|
||||
- Un seul payload partagé retiré ; retente **une fois** sur timeout/5xx (les
|
||||
modèles lents mais fonctionnels survivent) ; rejette définitivement les 4xx
|
||||
(404 modèle inconnu, 410 retiré/déprécié) ; garde les 429 (routés donc
|
||||
utilisables).
|
||||
|
||||
### Repli automatique au runtime (model not found / gone)
|
||||
- `LLMClient._http_complete` : si le modèle choisi répond **404/410**, retente
|
||||
une fois avec le modèle par défaut du provider et ajoute un `notice`
|
||||
expliquant le basculement — visible dans le panneau Agent (nouvel événement
|
||||
SSE « notice », bandeau `.fd-ap-notice`, réinitialisé à chaque conversation).
|
||||
- Le modèle réellement utilisé est persisté dans l'historique de conversation.
|
||||
|
||||
### Panneau Agent — logo noir & blanc thémé
|
||||
- Le rond bleu en bas à droite (FAB) et le logo du header du panneau (à gauche
|
||||
de « How can I help you today? ») passent de l'accent bleu + émoji 🤖 à un
|
||||
rond noir/blanc qui suit le thème clair/sombre, avec une étincelle ✨
|
||||
monochrome (SVG `currentColor` : rond `--text-primary`, étincelle
|
||||
`--bg-primary`).
|
||||
|
||||
## v5.1.8 (2026-09-07) — Multi-lignes réellement conservées + modèles IA validés (Nvidia)
|
||||
|
||||
> Deux correctifs : le bug multi-lignes (v5.1.7 corrigeait le symptôme au
|
||||
|
||||
Reference in New Issue
Block a user