Deepseek ArtifactsDeepseek Artifacts
Guide de secours anti-compactation

Claude Code compacte sans arrêt : brisez la boucle et sauvez votre travail

Pourquoi Claude Code compacte sans cesse votre conversation — comment interagissent le seuil d'autocompact, la compactation sur inactivité de la 2.1.299 et les incompatibilités de passerelle — plus la récupération par resume et checkpoints, l'interrupteur Idle compaction du /config, CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS, et les correctifs 2.1.301 et 2.1.309, sur de vrais enregistrements d'écran.

La compactation en boucle, en un coup d'œil

  • La compactation est la synthèse automatique qui libère de l'espace de contexte — Claude Code compacte quand la conversation approche la fenêtre du modèle (200K sur Sonnet 4.6/Opus 4.6 sans contexte étendu, environ 967K par défaut sur les modèles à fenêtre 1M).
  • « Compacte sans arrêt » a trois causes habituelles : une fenêtre réellement pleine, la compactation sur inactivité ajoutée en 2.1.299 (une conversation de 200K+ tokens laissée inactive environ 54 minutes est compactée avant l'expiration de son cache de prompts d'une heure), ou une incompatibilité de passerelle/nom de modèle corrigée en 2.1.301.
  • Rien de ce qui a déjà été envoyé n'est perdu : le résumé conserve le code et les décisions clés, et resume plus les checkpoints ramènent le reste — la ligne de compactation d'une session reprise vous dit où sont enregistrés les messages antérieurs (2.1.301).
  • Réglez-la au lieu de la combattre : /autocompact ou la clé autoCompactWindow change la fenêtre, CLAUDE_CODE_AUTO_COMPACT_WINDOW passe devant tout, et "idleCompaction": false (ou la ligne Idle compaction du /config) désactive la compactation sur inactivité.
  • Deux boucles spécifiques à des versions ont reçu leur correctif : la compactation répétée derrière une passerelle LLM qui nomme un autre modèle (2.1.301) et la compactation répétée après lecture de fichiers sous un CLAUDE.md imbriqué très volumineux (2.1.309) — mettez à jour avant de régler.

Claude Code: CLAUDE.md, Memory & Session Management

ChaîneDavid Mahler22:39

Ouvrir

Stop Losing Work When You Compact Claude Code

ChaîneThe Art of Vibe Coding7:28

Ouvrir

Model configuration — Claude Code documentation

Docscode.claude.com

Ouvrir

Les images proviennent de la présentation de gestion de sessions de David Mahler — diagrammes de contexte animés, la grille d'usage de /context avec sa ligne Autocompact buffer et le schéma du résumé de compactation. Les diapositives de seuil et de handoff viennent de l'explication animée de The Art of Vibe Coding. Les faits sont recoupés avec le CHANGELOG de Claude Code (2.1.299, 2.1.301, 2.1.302, 2.1.309) et la documentation officielle de configuration des modèles. Une vidéo avec visage à l'écran et une image de spinner déjà utilisée par notre guide de réduction des tokens ont été écartées comme sources d'images.

Les images vidéo restent la propriété de leurs créateurs et sont intégrées ici comme documentation pas-à-pas, avec attribution et liens profonds.

Stopper un Claude Code qui compacte sans arrêt

Étape 1 — Comprendre ce que fait la compactation

  1. 1

    Savoir ce qu'est réellement la compactation

    La compactation est un processus automatique qui libère de l'espace de contexte en résumant les anciens messages tout en préservant le code et les décisions clés. Claude Code compacte quand la conversation approche la fenêtre du modèle — à la frontière des 200K sur Sonnet 4.6 et Opus 4.6 sans contexte étendu, ou par défaut vers 967K tokens sur les modèles dotés d'une fenêtre native de 1M. Voir « Compacting conversation… » une fois dans une longue session, c'est le système qui fonctionne comme prévu, pas une erreur.

    Compaction slide from a Claude Code session management tutorial defining compaction as an automatic process that frees up context space by summarizing older messages while preserving key code and decisions
    La diapositive de définition de la compactation : un processus automatique qui résume les anciens messages en préservant le code et les décisions clés.Voir à 10:40
  2. 2

    Voyez ce qui remplit votre fenêtre

    Lancez /context avant de changer quoi que ce soit. Il affiche le modèle, le décompte de tokens face à la fenêtre et une répartition par catégorie — system prompt, system tools, MCP tools, memory files, Messages, espace libre et l'Autocompact buffer réservé. Dans la session enregistrée, Messages tenait à lui seul 129,9k des 149,1k tokens (65 %), avec 33k (16,5 %) réservés au tampon — voilà pourquoi la compactation est arrivée : c'est la conversation elle-même, pas un dysfonctionnement, qui consommait la fenêtre.

    Claude Code /context usage output showing Sonnet 4.6 at 149.1k of 200k tokens with Messages at 65 percent and the reserved Autocompact buffer of 33k tokens at 16.5 percent
    La grille d'usage de /context à 75 % : Messages à 129,9k tokens et le tampon Autocompact de 33k (16,5 %) signalés en bas.Voir à 10:20
  3. 3

    Reconnaître un état de contexte gonflé

    Quand les longues sorties, les lectures de gros fichiers et les gros résultats d'outils s'accumulent, le bloc Messages étouffe tout le reste — les descriptions de skills, les MCP tools et les instructions mémorisées se font écraser avant que vous ne le remarquiez. C'est l'état où chaque échange supplémentaire déclenche un nouveau cycle de compactation. Si /context montre Messages dominant pendant que les lignes d'instructions utiles rétrécissent, la solution consiste à alléger ce que vous donnez à la session, pas seulement à retoucher les seuils.

    Bloated context diagram from a Claude Code tutorial showing a Messages block grown so large it crowds out Skill Descriptions, MCP tools and remembered instructions before compaction
    Le schéma du contexte gonflé : un bloc Messages devenu si grand qu'il écrase les descriptions de skills, les MCP tools et les instructions mémorisées.Voir à 11:26

Étape 2 — Récupérer votre travail et réinitialiser la fenêtre

  1. 4

    Récupérer : le résumé garde les décisions, resume garde l'historique

    Rien de ce qui a été envoyé ne disparaît. La compactation transforme le bloc Messages en Conversation Summary pendant que les lignes CLAUDE.md et Auto Memory restent en place, et les checkpoints de Claude Code plus claude --resume / /resume ramènent le reste. Depuis la 2.1.301, la ligne de compactation d'une session reprise vous dit aussi où sont enregistrés les messages antérieurs au lieu de proposer un historique qu'elle ne peut pas charger. Si une compactation a interrompu un travail qui vous tenait à cœur, reprenez la session et lisez le résumé avant de tout réexpliquer.

    Compaction before and after diagram converting a large Messages block into a compact Conversation Summary while red-boxed CLAUDE.md and Auto Memory rows stay preserved in the context window
    Le schéma avant/après de la compactation : les Messages deviennent une Conversation Summary tandis que les lignes CLAUDE.md et Auto Memory, encadrées en rouge, sont préservées.Voir à 7:56
  2. 5

    Avant une grosse compactation, écrivez le travail sur disque

    Pour les sessions dont vous ne pouvez pas vous permettre de perdre le contexte, construisez vous-même le pont : demandez à Claude Code un document de handoff (ou utilisez un skill de handoff comme /handoff-doc) qui relit toute la session — chaque décision, chaque fichier touché, chaque fil en suspens — et le distille dans un HANDOFF.md structuré sur disque. Après la compactation ou une session neuve, pointer le prochain prompt vers ce fichier redonne le cap plus vite que le résumé seul.

    Handoff doc flow slide showing the /handoff-doc skill reading a whole Claude Code session and distilling every decision, file touched and loose end into one structured HANDOFF.md on disk
    Le flux de handoff : le skill /handoff-doc relit toute la session — chaque décision, fichier touché et fil en suspens — dans un HANDOFF.md structuré.Voir à 1:00
  3. 6

    Réglez la fenêtre d'autocompact au lieu de la redouter

    Le point de déclenchement est ajustable. /autocompact <valeur> le fixe pour le modèle courant et l'enregistre dans vos réglages utilisateur ; la clé autoCompactWindow (par exemple "autoCompactWindow": 200000 dans ~/.claude/settings.json) s'applique à tous les modèles ; --autocompact surcharge pour un seul lancement ; et la variable d'environnement CLAUDE_CODE_AUTO_COMPACT_WINDOW passe devant tout, en acceptant 100 000–1 000 000 tokens (dès la 2.1.304 vous pouvez écrire 200k ou 1M). Les valeurs sont plafonnées à la vraie fenêtre du modèle, et /autocompact auto revient au réglage ajusté par défaut.

    Trigger threshold slide explaining that 20 percent of a 1M token Opus session equals roughly 200,000 tokens or an hour of real work before Claude Code compacts
    Le calcul du seuil : 20 % d'une session Opus de 1M tokens fait environ 200 000 tokens — environ une heure de travail réel.Voir à 2:12

Étape 3 — La compactation sur inactivité : le comportement 2.1.299

  1. 7

    Reconnaître la compactation sur inactivité (Claude Code 2.1.299)

    Depuis la 2.1.299 existe un second déclencheur sans rapport avec une fenêtre pleine : la compactation sur inactivité. Une conversation de 200K+ tokens que vous laissez inactive environ 54 minutes est compactée avant l'expiration de son cache de prompts d'une heure, pour que votre prochain message ne retraite pas toute la transcription au prix fort. Si Claude Code compacte pendant votre absence — l'avis apparaît dans la transcription à votre retour — c'est la fonctionnalité, pas une boucle.

  2. 8

    Désactivez la compactation sur inactivité ou abaissez son plancher

    Deux interrupteurs, tous deux documentés dans le changelog 2.1.299 : mettez "idleCompaction": false dans settings.json pour la désactiver entièrement, ou réglez CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS pour changer le minimum de 200K tokens en dessous duquel la compactation sur inactivité ne se déclenche jamais (les deux exigent v2.1.290 ou plus). Depuis la 2.1.302, une ligne Idle compaction existe aussi dans /config, et les avis affichés après une compactation sur inactivité disent désormais comment la désactiver. Le réglage exige 200K+ tokens inactifs pendant environ 54 minutes — les sessions courtes ne sont jamais touchées.

  3. 9

    Décidez si vous la voulez vraiment désactivée

    La compactation sur inactivité échange un coût contre un autre. Laissez-la active : vous perdez la transcription exacte à votre retour après une heure. Désactivez-la : votre prochain message retraite l'intégralité des 200K+ tokens avec un cache expiré — plus lent et facturé au tarif cache-miss. Si vos sessions sont longues mais que vous vous éloignez souvent, abaisser CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS est généralement préférable à une désactivation : la compactation a lieu à vos conditions, sur un bloc plus petit.

Étape 4 — Boucles spécifiques aux versions et prévention

  1. 10

    Mettez à jour avant de régler : la boucle de passerelle 2.1.301

    Si la compactation se répète réellement sur une fenêtre pleine, vérifiez d'abord votre version. La 2.1.301 a corrigé des conversations « compactées encore et encore, sur un modèle que vous n'aviez pas choisi, derrière une passerelle LLM dont les réponses nomment un modèle différent de celui demandé » — les réponses de la passerelle nommaient le modèle X pendant que vous demandiez le modèle Y, et chaque tour recompactait. Le même release a corrigé la ligne de compactation d'une session reprise qui proposait ctrl+o pour un historique non chargé. Utilisateurs de passerelle en 2.1.300 ou antérieur : mettez à jour avant de toucher au moindre réglage.

  2. 11

    Allégez les fichiers CLAUDE.md — la boucle de fichier imbriqué 2.1.309

    Autre boucle documentée : des sessions continuaient de se compacter après lecture de fichiers sous un CLAUDE.md imbriqué très volumineux — la 2.1.309 l'a corrigé, et un CLAUDE.md imbriqué dépassant la limite de taille ne charge désormais que son début. Auditez quand même vos fichiers mémoire : le CLAUDE.md au niveau utilisateur se charge dans tous les projets, les fichiers de périmètre projet se chargent dans le répertoire de travail, et les fichiers de sous-répertoire à la demande se chargent quand Claude les visite. Sortez des fichiers toujours chargés tout ce qui n'est pas une instruction universelle.

    Claude Code memory scopes diagram listing user-level CLAUDE.md loaded for all projects, project-scope CLAUDE.md in the working directory and on-demand CLAUDE.md files visited by Claude
    Le schéma des périmètres mémoire : CLAUDE.md au niveau utilisateur pour tous les projets, fichiers de périmètre projet dans le répertoire de travail, et fichiers à la demande que Claude charge en visitant.Voir à 4:44
  3. 12

    Prévenez la prochaine boucle

    Trois habitudes font de la compactation un non-événement. Gardez les fichiers CLAUDE.md maigres pour que les instructions survivent à chaque compactation. Laissez la compactation se produire au seuil au lieu de la repousser — la qualité des réponses se dégrade à mesure que la fenêtre se remplit, et le résumé écrit à 20 % restants est meilleur que celui écrit à 95 %. Et déchargez sur disque l'état qui vous importe (documents de handoff, plans, checklists) pour que chaque réinitialisation reparte de mieux qu'un simple résumé.

    Why wait slide with a red trigger bar showing Claude Code response quality degrading when a compaction at the 20 percent threshold is postponed past the autocompact point
    La diapositive du pourquoi il ne faut pas attendre : la qualité des réponses se dégrade quand le seuil de compactation est franchi et que la compactation est repoussée.Voir à 2:20

La compactation sur inactivité, la 2.1.299 en détail

La compactation sur inactivité est la raison la plus récente pour laquelle une session « compacte sans arrêt » — et la plus facile à confondre avec un bug. Le changelog 2.1.299 l'a introduite dans le terminal avec une justification explicite, et 2.1.302 plus 2.1.301 ont affiné les contrôles autour. Les faits, vérifiés contre le changelog :

  • 1Le déclencheur : une conversation de 200K+ tokens laissée inactive environ 54 minutes — calibré pour que la compactation tombe avant l'expiration du cache de prompts d'une heure.
  • 2La justification : « pour que votre prochain message ne retraite pas tout » — une transcription de 200K+ tokens non compactée après expiration du cache est retraitée token par token au tarif cache-miss.
  • 3L'interrupteur : "idleCompaction": false dans settings.json — ou, depuis la 2.1.302, la ligne Idle compaction de /config.
  • 4Le levier de réglage : CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS change le minimum de 200K tokens ; les conversations en dessous ne sont jamais compactées sur inactivité.
  • 5Le plancher de version : la variable d'environnement comme le réglage exigent Claude Code v2.1.290 ou plus — sur les builds antérieurs, la fonctionnalité n'existe tout simplement pas, ce qui peut ressembler à un changement de comportement soudain après une mise à jour.
  • 6Les garde-fous : les sessions courtes ne sont jamais touchées, l'avis apparaît dans la transcription à votre retour, et depuis la 2.1.302 l'avis lui-même dit comment désactiver la fonctionnalité.

Si vous partagez des sessions en équipe, rappelez-vous que le réglage est propre à chaque machine : "idleCompaction": false dans vos réglages utilisateur ne suit pas le dépôt, si bien que la session inactive d'un collègue peut se compacter quand la vôtre ne le fait jamais. Pour les sessions longues partagées, la combinaison prévisible est un CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS abaissé plus un document de handoff écrit avant que quiconque s'éloigne.

FAQ compactation

Continuer l'exploration