Claude Code 2.1.257-258 : Fable 5.1 et un auto mode plus méfiant

Fable 5.1 devient le modèle Fable par défaut, avec un cache quatre fois moins cher. Et l'auto mode se durcit : identifiants cloud, lecture hors répertoire, bypassPermissions de projet et deux failles d'isolement refermées.

claude-code changelog securite permissions digest-dossier

Deux versions depuis le dernier digest, la 2.1.257 et la 2.1.258, sorties le même jour, le 1er septembre. La première est un pavé de plus de quatre-vingts entrées. La seconde tient en deux correctifs. Le fil rouge de la grosse version n'est pas un bug isolé, c'est une même idée qui revient trois fois : une action qui passait discrètement se fait désormais arrêter, parce que le contexte dans lequel elle tourne compte autant que l'action elle-même.

Fable 5.1, et un cache quatre fois moins cher

Claude Fable 5.1 (claude-fable-5-1) devient le modèle que l'alias Fable résout par défaut, à la place de Fable 5. Une nuance s'impose tout de suite : la doc des modèles est claire, aucun modèle Fable n'est le modèle par défaut d'un plan, il faut toujours le choisir explicitement dans /model. Ce qui change ici, c'est seulement la version que tu obtiens une fois que tu as fait ce choix.

Il garde le même contexte d'un million de tokens que Fable 5, Sonnet 5 et Opus 4.6 et suivants, et demande Claude Code 2.1.255 ou plus récent. Côté facture, la page de tarifs confirme une entrée et une sortie identiques à Fable 5, 10 et 50 dollars par million de tokens, mais change la lecture de cache : 0,25 dollar par million contre 1 dollar sur Fable 5, soit quatre fois moins cher. Si tu fais tourner un agent qui relit beaucoup de contexte mis en cache, c'est cette ligne qui bouge sur ta facture, pas le prix d'entrée qui reste identique.

Un détail pour ceux qui passent par une passerelle Claude apps : les alias fable et best continuent pour l'instant de résoudre vers Fable 5, parce que les passerelles pas encore configurées pour Fable 5.1 le rejettent. Il faut sélectionner Fable 5.1 explicitement dans /model pour l'obtenir.

L'auto mode se méfie du cloud et de tes fichiers de projet

Trois changements de la 2.1.257 partagent la même logique. D'abord, une règle nommée Containment Escape rejoint le classificateur de l'auto mode : récupérer des identifiants depuis un service de métadonnées cloud, contourner un filtrage de sortie réseau, ou atteindre un autre tenant, ne sont plus auto-approuvés par défaut. C'est le triptyque classique qu'utilise un pipeline agentique compromis pour voler les identifiants de la machine qui l'héberge et rebondir ailleurs. Ton environnement peut marquer ces actions comme attendues s'il en a réellement besoin, mais ce n'est plus le comportement par défaut.

Ensuite, l'auto mode affiche une invite la première fois qu'une session lit un fichier situé hors des répertoires de travail, avec la possibilité de bloquer entièrement ce type de lecture via permissions.blockReadsOutsideWorkingDirectories. Une session qui élargit discrètement sa portée de lecture ne passe plus inaperçue.

Enfin, et c'est le plus susceptible de casser une configuration existante : poser defaultMode: "bypassPermissions" dans le .claude/settings.json ou le .claude/settings.local.json d'un projet est désormais ignoré, exactement comme l'était déjà "auto". La doc des modes de permission le confirme noir sur blanc : la session démarre en mode Manuel à la place. Il faut poser cette valeur dans les réglages utilisateur ou gérés, ou passer --permission-mode. Si un dépôt que tu as cloné configurait ce mode pour toute l'équipe, ce fichier de projet vient de perdre ce pouvoir : n'importe qui avec un accès en écriture au dépôt pouvait jusqu'ici s'accorder un contournement complet des permissions, rien qu'en committant une ligne de JSON.

Deux failles d'isolement refermées

Deux correctifs de la même version bouchent des trous plus anciens. Le premier vise le bac à sable : un domaine écrit avec un point final, comme exemple.com., n'était pas bloqué par une règle deniedDomains alors qu'il désigne le même hôte en DNS, et un « ne plus demander » posé sur cet hôte continuait quand même de redemander. Le second est ailleurs : un plugin déclarant une commande, un agent, un skill ou un hook dont le chemin est un lien symbolique pouvait lire des fichiers hors de son propre répertoire ; ces chemins sont désormais rejetés avec une erreur de traversée de répertoire, le même genre de correctif que celui déjà vu sur les outils de fichiers dans la 2.1.251.

Le reste, en vrac

  • Trois contournements de permission refermés : une règle permissions.ask n'était pas appliquée en auto mode quand la commande visée tournait dans une commande composée ou un sous-shell, les règles de refus Bash Read()/Edit() ne couvraient ni les redirections < fichier ni les lecteurs comme tac et egrep, et certaines conditions [[ ]] que zsh interprète autrement que bash passaient en auto-approbation.
  • Réglage d'heure : timeFormat (12h, 24h, 24h UTC, ou un motif strftime) et timeZone contrôlent maintenant l'horloge de fin de tour et les horodatages du transcript.
  • /effort s change l'effort pour la session en cours seulement, sur le même principe que /model.
  • Les réglages d'un .claude/ créé après le démarrage de la session sont enfin pris en compte sans redémarrage.
  • Rendu plus fluide : moins de re-rendu par tour dans les longues conversations, le streaming ne ralentit plus quand la réponse s'allonge, et les mises à jour des sous-agents d'arrière-plan ne redessinent plus tout l'écran.
  • VS Code gagne une pastille de modèle dans le champ de saisie et une section Compte et Usage repliable dans le panneau de sessions.
  • Le même jour, la 2.1.258 répare une régression introduite par la 2.1.255 qui empêchait Claude Code de démarrer sur macOS 12 Monterey. À noter, la configuration système exige déjà macOS 13 au minimum : Monterey n'est officiellement plus pris en charge, donc ce correctif ne concerne qu'une poignée d'installations en marge du support officiel.
  • Un second correctif de la 2.1.258 touche de près le genre de session qui écrit ce digest : les sessions distantes et planifiées échouaient avec « user messages must have non-empty content » quand une approbation de permission renvoyée ne pouvait pas s'appliquer. Sur une session automatisée sans personne pour relancer à la main, c'est le genre de panne qui arrête un run sans rien produire.

Ce qu'il faut en retenir

Mets-toi à jour pour l'auto mode, pas forcément pour Fable 5.1 si tu ne l'utilises pas déjà. Le motif commun de la 2.1.257, c'est qu'un fichier de projet ou une session automatisée ne doit plus pouvoir s'accorder plus de pouvoir qu'avant sans que ce soit visible : ni via un bypassPermissions glissé dans un .claude/settings.json, ni via une lecture qui s'étend hors du répertoire de travail, ni via un identifiant cloud récupéré en silence. Si tu comptais sur le premier de ces trois pour toute une équipe, va vérifier où ce réglage doit désormais vivre avant que quelqu'un ne le découvre en pleine session bloquée en mode Manuel.

Pierre Rondeau

Pierre Rondeau

Développeur et indie builder. Je construis des produits et automatisations avec l'IA. Créateur de Claude Hub.

LinkedIn