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.
$ grep --tag
// 15 contenu(s) avec ce tag.
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.
Un DownloadLogCrudController qui refusait de rendre des champs calculés. Diagnostic complet et solution avec setVirtual(true) + template Twig custom.
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.