Claude Code 2.1.295 : les hooks peuvent enfin forcer un blocage en cas d'échec
La 2.1.295 ajoute un mode de blocage explicite aux hooks commande et HTTP, corrige un hook de garde qui pouvait voir un input tronqué, et change ce que fait Ctrl+C pendant un /loop en arrière-plan.
La 2.1.295 de Claude Code, sortie le 8 octobre 2026, compte 143 entrées entre nouveautés, changements, améliorations et correctifs, la plupart destinés aux administrateurs de passerelle Claude apps, aux auteurs de mods et de plugins, ou à Claude Tag dans Slack. Trois choses touchent directement ton usage quotidien : les hooks reçoivent enfin un moyen explicite de bloquer une action quand ils échouent, un réflexe au clavier change pendant une session en arrière-plan avec un /loop en attente, et deux plafonds invisibles, sur les sous-agents et sur la recherche d'outils MCP, bougent sans bruit.
Les hooks se referment, côté réglages et côté mods
La doc sur les hooks le dit sans détour : par défaut, un hook command ou http qui échoue ne bloque rien. Un délai dépassé « doesn't block the tool call. The call continues through the normal permission flow, so don't count on a stalled hook to act as a gate. » Et sans JSON valide sur sa sortie, « Claude Code treats exit code 1 as a non-blocking error and proceeds with the action, even though 1 is the conventional Unix failure code. » Un hook censé appliquer une politique devait déjà sortir avec le code 2 pour bloquer, mais un échec d'exécution, un script introuvable, un délai dépassé, laissait l'action passer sans rien dire.
La 2.1.295 ajoute onFailure: "block" pour les hooks command et HTTP : un hook qui ne démarre pas, dépasse son délai ou sort avec un code inattendu bloque désormais l'action au lieu de la laisser filer. Si tu t'appuies sur un hook pour appliquer une règle qui doit tenir, c'est la bonne case à cocher : le défaut, lui, reste permissif.
Même version, même famille de problème côté mods. Un mod peut garder un appel d'outil et « handle the event itself, so the usual behavior doesn't run, such as refusing a command », en lisant l'entrée de l'appel pour décider. La 2.1.295 corrige un bug où cette entrée, quand elle était très profondément imbriquée, se faisait tronquer sans erreur avant d'atteindre le hook : un garde pouvait juger sur un appel d'outil qu'il n'avait jamais vu en entier, et laisser passer ce qu'une lecture complète aurait bloqué. Elle corrige aussi un second trou du même ordre : les appels qu'un mod lançait pendant son rechargement, lors d'un redémarrage du worker des hooks de plugins, passaient le garde d'un autre mod même quand celui-ci avait un gestionnaire .catch. Ces appels sont désormais refusés.
Ctrl+C ne fait plus la même chose pendant un /loop en arrière-plan
Le comportement par défaut de Ctrl+C est simple : rien en cours, le premier appui vide le prompt, le second quitte Claude Code. Dans une session en arrière-plan à laquelle tu es attaché, les touches ont déjà un rôle à part : la flèche gauche détache et te renvoie à la vue des agents sans interrompre ce qui tourne, et deux Ctrl+C sur un prompt vide détachent aussi, au lieu de quitter.
La 2.1.295 précise le cas du /loop : si un réveil est en attente dans une session en arrière-plan attachée, Ctrl+C au prompt inactif laisse maintenant ce réveil tranquille, si bien que deux appuis détachent la session et que la boucle continue de tourner. Pour arrêter le /loop lui-même, c'est Esc qu'il faut presser. Le réflexe « Ctrl+C, Ctrl+C » ne touche donc plus à la boucle dans ce cas précis, seulement là.
Deux plafonds qui bougent sous le capot
Un sous-agent peut précharger des skills via le champ skills de son frontmatter : « The full content of each listed skill is injected into the subagent's context at startup. » Le champ ne limite pas l'accès : sans lui, « the subagent can still discover and invoke project, user, and plugin skills through the Skill tool during execution. » La 2.1.295 plafonne ce préchargement à 32 skills par sous-agent, chacune une seule fois. Au-delà, les skills restantes ne disparaissent pas : un sous-agent qui a l'outil Skill peut toujours les invoquer à la demande, il perd juste leur contenu injecté d'office au démarrage.
Deuxième plafond, côté MCP. La recherche d'outils (tool search) est le réglage par défaut qui évite de charger toutes les définitions d'outils MCP d'un coup. La 2.1.295 relève la longueur de description qu'elle garde pour chaque outil lors de cette recherche, de 2 048 à 16 384 caractères. Un outil dont la description dépassait l'ancien seuil se faisait couper net ; la marge est maintenant huit fois plus large.
Le reste, en vrac
- Grep et ses flags : une recherche envoyée avec
-l,-cou-réchouait purement et simplement, elle s'exécute maintenant normalement. - Installation de plugin et réglages cassés :
claude plugin install,enable,disableetmarketplace addaffichent un avertissement quand le fichier de réglages qu'ils écrivent ne se charge pas. - VS Code : les fichiers que Claude t'envoie dans le chat ont leur propre ligne, cliquable pour ouvrir le fichier dans l'éditeur.
- Permissions Bash : les vérifications sur des boucles for parcourant un motif glob sont plus précises.
- Le reste de la version, la majorité des entrées en réalité, concerne la passerelle Claude apps sur Bedrock, Vertex et Foundry, le développement de mods et de plugins, Claude Tag dans Slack, et une longue liste de correctifs d'affichage et de fiabilité terminal.
Ce qu'il faut retenir
Le point commun des deux premiers changements, c'est qu'aucun des deux ne change le comportement par défaut : un hook qui échoue reste permissif sauf si tu actives onFailure: "block" toi-même, et le bug du garde tronqué touchait un cas précis d'entrée très imbriquée, pas tous les appels. Si tu comptes sur des hooks pour appliquer une règle de sécurité, cette version vaut la mise à jour, mais la case reste à cocher explicitement. Pour le réflexe Ctrl+C, le changement ne touche qu'un cas étroit, une session en arrière-plan attachée avec un /loop en attente, mais c'est justement le genre de détail qu'on découvre en pressant la touche au mauvais moment. Enfin, si tu écris des sous-agents avec plus de 32 skills préchargées, le surplus n'est plus injecté au démarrage et passe par l'outil Skill ; si ton serveur MCP a des descriptions d'outils longues, le nouveau plafond joue en ta faveur.
Pierre Rondeau
Développeur et indie builder. Je construis des produits et automatisations avec l'IA. Créateur de Claude Hub.
LinkedIn