Quotidien Shaarli
Aujourd'hui - July 9, 2026
WebMCP permet d'exposer des actions typées sur une page web, facilitant l'interaction entre agents IA et sites web. Contrairement aux méthodes traditionnelles où les agents doivent analyser le contenu visuel, WebMCP déclare les actions via un contrat clair (nom, description, schéma JSON), simplifiant ainsi les échanges. Cette approche expérimentale, encore en draft au W3C et testée via un origin trial dans Chrome, offre deux méthodes d'intégration : impérative (via JavaScript) ou déclarative (via attributs HTML), sans nécessiter de serveur dédié.
L'article explique comment tester WebMCP localement en activant un flag dans Chrome et en utilisant une extension dédiée, permettant de visualiser et manipuler les outils exposés. Pour une intégration avec Symfony et Stimulus, il suffit de créer une façade JavaScript qui réutilise des endpoints existants, évitant ainsi de dupliquer la logique métier. L'authentification repose sur les cookies du navigateur, garantissant que l'agent dispose des mêmes droits que l'utilisateur humain.
Bien que prometteur, WebMCP reste une technologie émergente, dépendante des évolutions de la spécification et de l'adoption par les navigateurs. Son utilisation actuelle se limite principalement à Gemini dans Chrome, et son avenir dépendra de la stabilité de la spécification et de l'intérêt des développeurs.
Ce billet analyse le trafic généré par les bots d’intelligence artificielle sur un blog PHP, en comparant les politiques définies dans le robots.txt avec la réalité des logs. L’auteur, après avoir constaté l’absence de données concrètes, a examiné 13,5 jours de logs (108 217 requêtes) pour évaluer l’efficacité de sa stratégie de blocage. Malgré une politique robots.txt restrictive et des outils comme Caddy et CrowdSec, les crawlers d’entraînement (comme Amazonbot) ont persisté, tandis que GPTBot (OpenAI) était absent.
L’étude révèle des limites méthodologiques, notamment l’impossibilité de tracer un tiers du trafic (lié à Docker) et l’absence de données vérifiables pour certains bots (comme ceux d’Anthropic). Les crawlers d’entraînement, bien que minoritaires (1,4 % des requêtes), ont consommé une bande passante non négligeable (13,4 Mo). L’auteur souligne l’importance de mesurer avant d’agir, une approche qu’il qualifie de "règlement affiché sans vérification".
Enfin, le billet conclut que les bots d’IA n’ont apporté aucun trafic référent (referral), remettant en cause leur utilité pour un site personnel. L’auteur envisage de durcir sa politique, tout en gardant une approche réversible, et invite à une réflexion sur l’équilibre entre ouverture et protection des données.
Ce billet explique comment automatiser les releases logicielles en utilisant les Conventional Commits, SemVer, CHANGELOG et git-cliff via GitHub Actions. L’idée centrale repose sur l’analyse des messages de commit (formatés selon Conventional Commits) pour générer automatiquement une nouvelle version, un CHANGELOG et une release GitHub, sans intervention manuelle hormis la validation finale d’une PR.
L’auteur détaille la configuration de git-cliff (via un fichier cliff.toml) qui filtre les commits pertinents (feat, fix, etc.) et applique les règles de versionnage SemVer. Un postprocessing simplifié remplace les références de PR par des liens Markdown, évitant ainsi la gestion complexe de tokens GitHub. Le workflow CI/CD, déclenché à chaque push sur main, prépare une PR de release si nécessaire, réduisant l’intervention humaine à un simple merge.
L’approche est adaptée aux projets déployés avec un mainteneur unique, excluant les bibliothèques ou monorepos aux contraintes spécifiques. La solution mise en avant privilégie la simplicité, avec une configuration versionnée et des outils légers (binaire Rust ou image Docker), garantissant un comportement cohérent entre local et CI.
L’article explore les distributive conditional types en TypeScript, une fonctionnalité permettant de manipuler les types unions de manière fine. L’idée centrale repose sur la distributivité des types conditionnels, où TypeScript applique automatiquement une opération à chaque membre d’une union, comme transformer User | Admin | SuperAdmin en User[] | Admin[] | SuperAdmin[] via un type générique.
L’auteur illustre ce concept avec des exemples concrets, comme le filtrage d’unions (par exemple, conserver uniquement les rôles "admin" et "superadmin") ou la création de structures homogènes à partir de types hétérogènes. La technique repose sur une condition redondante (T extends unknown) pour déclencher la distributivité, simplifiant ainsi des opérations complexes.
Enfin, l’article s’inscrit dans une réflexion plus large sur TypeScript, comparé à Haskell pour son approche statique, et mentionne brièvement l’expérience de l’auteur en développement backend.