Claude Code v2.1.217: avvisi sui transcript falliti e fix del memory leak MCP
Claude Code v2.1.217 aggiunge due cose che pesano più della lista dei fix: un warning esplicito quando i transcript non si salvano (disco pieno, variabile d’ambiente che disattiva il salvataggio) e la correzione di un memory leak che teneva in memoria l’output completo dei tool MCP anche dopo il troncamento a schermo.
Come raccontavamo ieri con v2.1.216, la serie di release veloci sta portando Claude Code verso l’uso quotidiano in produzione. Il warning sui transcript failures è un segnale concreto di questa direzione: prima, quando il disco si riempiva o una variabile d’ambiente ereditata spegneva il salvataggio delle sessioni, i transcript sparivano in silenzio. Ora l’agente lo dice.
Il fix sul memory leak dei tool MCP chiude un problema sottile: anche se l’output veniva troncato a schermo, la versione intera restava allocata in memoria per tutta la sessione. Con ore di lavoro e chiamate multiple a tool esterni, la cosa si sommava fino a rallentare o bloccare tutto.
La release porta anche l’autocompletamento degli emoji tramite shortcode (:heart: per ❤️, disattivabile con emojiCompletionEnabled), un cap sui subagent concorrenti (default 20, configurabile con CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) e il divieto di subagent annidati per default. Il tool impara a mettersi dei limiti da solo.
Nel dettaglio
Il cambio che conta di più in questa release non sta in una feature nuova, ma in un warning. Fino a oggi, se il disco si riempiva a metà sessione o se una variabile d’ambiente ereditata (magari da una configurazione aziendale) disattivava il salvataggio delle sessioni, Claude Code perdeva i transcript senza dirlo. Chi se ne accorgeva solo quando provava a fare --resume o --continue e trovava la sessione vuota.
Ora appare un avviso. Per chi esegue Claude Code in pipeline automatizzate o su macchine condivise, questo cambia il modo di operare: invece di scoprire il danno a posteriori, puoi reagire subito, liberare spazio o correggere la configurazione.
Il memory leak dei tool MCP era il classico bug silenzioso. Quando un tool MCP restituiva un output lungo, Claude Code lo troncava a schermo per non intasare il terminale, ma manteneva la versione intera in memoria per il resto della sessione. In una sessione di mezz’ora con dieci chiamate a tool esterni, la memoria occupata cresceva senza motivo. Il fix rilascia la memoria dopo il troncamento.
Il cap sui subagent concorrenti (default 20, override con CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) e il divieto di subagent annidati per default chiudono un altro fronte: finora un singolo messaggio poteva lanciare un numero illimitato di agenti in background, ognuno dei quali poteva a sua volta lanciarne altri. In teoria era potenza, in pratica era un modo affidabile per saturare la macchina e bruciare budget. Mettere un tetto di default è una scelta conservatrice che protegge chi usa il tool senza aver configurato nulla.
La release chiude anche un OOM su CLAUDE.md e SKILL.md: se il frontmatter conteneva molti brace group nei percorsi, l’espansione poteva bloccare o far crashare la CLI all’avvio. Ora l’espansione ha un budget. E corregge un bug per cui --max-budget-usd non fermava i background agent quando il budget era superato: un’allocazione di costo che non funzionava nel caso in cui servisse di più.
Il tono generale della release conferma il pattern delle ultime settimane: niente feature spettacolari, ma una sequenza di fix che rimuovono i casi in cui il tool fallisce in silenzio. Per chi valuta di portare Claude Code in un flusso di lavoro ricorrente, questo conta più di qualsiasi annuncio.