Feat/improvements#5
Conversation
Kaiohz
left a comment
There was a problem hiding this comment.
🟢 Review: Feat/improvements — Score 7/10
✅ Points positifs
-
Fix dialog accessibility : Remplacement de
<dialog open role="none">par<div role="document">— correct, le<dialog>HTML natif a un comportement de focus/overlay qui entre en conflit avec l'overlay custom. Meilleure sémantique. -
Fix scroll dans modals :
overflow-y-autosur le conteneur +items-start pt-[10vh]au lieu deitems-center— quand le contenu dépasse, la modal scroll au lieu d'être coupée. Bon fix UX. -
Toast d'erreur : Ajout de
toast.error()dansChatInputetuseStreamChat— l'utilisateur a enfin un feedback visuel quand un message ou un stream échoue. -
Race condition fix dans
ChatInput:await queryClient.invalidateQueries()AVANT de clear le pending state — avant, le invalidate était synchrone (non-awaited) et le clear pouvait arriver avant le refetch, causant un flash vide. -
Timeout API :
chatApi.postMessagepasse à 5min (300000ms) — nécessaire pour les agents LLM longs.
⚠️ Points d'attention
-
Timeout hardcodé :
300000est en dur dans l'appel API. Devrait être configurable via env var ou constante (les agents lents vs rapides n'ont pas le même besoin). -
useStreamChat: finally sans catch : Letry { await invalidate } finally { clear state }est bien, mais siinvalidateQueriesthrow pour une raison inattendue, le state sera quand même nettoyé — c'est le comportement voulu, mais pas de logging de l'erreur. -
Pas de référence Jira ni description dans la PR
-
Pas de tests pour les changements (toast, dialog, timeout) — comprendre pour du UI, mais les hooks
useStreamChatetuseSendMessagepourraient avoir des tests unitaires
💡 Suggestions
- Extraire le timeout dans une constante
const API_TIMEOUT_MS = 300_000;ou env varVITE_API_TIMEOUT - Ajouter description + référence Jira
- Considérer des tests pour
useStreamChat(error callback, finally behavior)
Review by SoluBot 🤖
Code Review — Feat/improvements✅ Points positifs
Score : 8/10 — LGTM 🚀 |
No description provided.