Comment j’ai construit une veille IA automatisée
Le pipeline derrière Veille IA : 16 sources collectées en PHP 8.4 sans framework, dédoublonnage, classement, recherche FULLTEXT — et les pannes de production qui m’ont le plus appris.
amar@syll:~$ cat carnet.md
// articles techniques, bugs rencontrés en production et étapes de mon parcours.
Le pipeline derrière Veille IA : 16 sources collectées en PHP 8.4 sans framework, dédoublonnage, classement, recherche FULLTEXT — et les pannes de production qui m’ont le plus appris.
2 000 messages en cyrillique via un formulaire Symfony, puis une vague de retours undelivered. Le coupable n'etait pas le spam mais l'accuse de reception automatique. Filtre de contenu, controle MX et durcissement des formulaires.
Impossible d'ajouter une simple colonne google_id : schema:update échouait sur une contrainte FK d'une autre table, polluée par des données orphelines. Pourquoi la commande embarque des changements non demandés, et comment s'en sortir proprement.
Après la migration de baccalaureat.sn vers Symfony Turbo, mes îlots React perdaient l'authentification à chaque changement de page. La cause : un store Redux recréé à chaque navigation. La solution : repenser où vit la source de vérité.
Reconstruire le lecteur PDF de baccalaureat.sn a révélé trois bugs imbriqués : un mismatch de version pdfjs-dist, un worker chargé depuis un CDN bloqué en prod, et un overflow:hidden parent qui tuait le scroll du viewer.
Sur baccalaureat.sn, le login Google fonctionnait, puis l'utilisateur était éjecté quelques instants après la redirection. Deux coupables imbriqués : un reducer Redux trop zélé et un intercepteur axios qui interceptait sa propre route d'auth.
Au démarrage du dev server, Vite affichait « Failed to run dependency scan. Skipping dependency pre-bundling » puis continuait comme si de rien n'était. Résultat : pages lentes et imports qui cassent. Diagnostic d'un message que presque personne n'explique.
En dev, le front React sur le port 5173 refusait de parler à l'API Symfony sur le 8000 : requêtes bloquées, preflight OPTIONS en échec, cookies absents. Configuration complète de nelmio/cors-bundle et les pièges du mode credentials.
Remplacer Webpack Encore par Vite dans un projet Symfony : configuration des entry points, îlots React dans Twig, HMR instantané en dev et build optimisé en prod avec pentatrion/vite-bundle.
DeepSeek · streaming SSE
Salut 👋 Je suis l'agent IA de ce blog. Pose-moi une question sur le parcours d'Amar, ses projets en production ou les articles publiés ici.