| Problème | Solution |
| Permissions moodledata après purge caches | chown -R daemon:daemon /bitnami/moodledata/ && chmod -R 775 |
| Tables en latin1 (charset) | ALTER TABLE CONVERT TO CHARACTER SET utf8mb4 |
| create_quiz.php cassait la prévisualisation | Remplacé par quiz_add_quiz_question() API Moodle |
| settings.php nom réservé | Renommé en course_settings.php pour le Tutor IA |
| lib.php installer : find() on null | Vider le fichier (pas de hooks de navigation) |
| Moodle Hub registration erreur | URL Tailscale pas accessible depuis AWS -> ignorer |
| Problème | Solution |
| GPU mémoire : processus zombies vLLM | kill -9 PID après nvidia-smi |
| Port 8000/8101 localhost only | Proxy socat sur port 8200 |
| Config IA change sans préavis | Vérifier modèle et ports avant chaque session |
| DeepSeek reasoning parser mangeait les tokens | Enlevé, filtre des tags think dans le code |
| AWQ tokenizer bugs : tokens corrompus | Changer de modèle |
| Problème | Solution |
| QCM hallucinations (retour Morancey) | Prompts anti-hallucination + température basse |
| AI Grader hallucinations | Passes 1-2 strictes, pas d'invention d'exercices |
| QCM 0 questions sur gros PDF | Chunk réduit 15K -> 6K pour modèle 8K context |
| AI Grader échelle /20 codée en dur | Échelle dynamique selon maxgrade |
| AI Grader fallback 50 | Supprimé : erreur propagée |
| Tutor IA tags think visibles | Filtre streaming : drop au lieu de forward |
| Tutor IA dashboard erreur DB | get_records avec id unique |
| QCM preview modal soumettait le form | type=button sur le X |