claude· 5 min di lettura

Claude Code 2.1.222: l'isolamento dei worktree ora copre anche i subagent

Di Marco Masut

Claude Code 2.1.222, pubblicata il 4 agosto 2026 lo stesso giorno della 2.1.221, apre il changelog con la voce che conta più di tutte le altre messe insieme: le sessioni isolate in un worktree, e i loro subagent, potevano eseguire comandi git distruttivi contro il checkout principale. Dalla 2.1.222 l'isolamento si applica alle modifiche ai file e a Bash in ogni tipo di sessione. Un worktree isolato è una copia di lavoro separata del repository, dentro la quale una sessione dovrebbe poter sbagliare senza che il danno risalga fino al checkout da cui è partita.

Il punto non è quanto fosse probabile il comando distruttivo. È che il worktree viene scelto proprio in quanto confine: una sessione la si manda in isolamento quando si è deciso di non guardarla mentre lavora. Se quel confine tiene per le modifiche ai file ma non per git, allora non è un confine, è una convenzione. E una convenzione la rispetta soltanto chi la conosce.

Cosa copre davvero l'isolamento di un worktree

L'isolamento di una sessione di Claude Code vale quanto la superficie meno protetta che quella sessione riesce a raggiungere. Il caso corretto dalla 2.1.222 lo mostra bene: il codice che scriveva i file rispettava il worktree, il codice che lanciava git no, e i subagent ereditavano la stessa disattenzione. Nessuna delle due parti stava facendo qualcosa di sbagliato dal proprio punto di vista. Semplicemente non esisteva un unico posto in cui il confine fosse deciso, e quindi ne esistevano due versioni diverse.

Questa è la parte che riguarda chi lancia più agenti in parallelo, che oggi è più o meno chiunque usi Claude Code su un progetto vero. Un subagent non è una sessione più piccola: è una sessione con lo stesso accesso alla macchina e con molta meno attenzione umana addosso. Quando si delega a un subagent la parte noiosa, si delega anche il rispetto dei confini, e fino alla 2.1.222 quei confini non erano gli stessi per tutti i tipi di sessione.

Vale la pena notare da dove arriva il problema, perché è lo stesso posto di ieri. Nella 2.1.221 i due aggiramenti dei permessi corretti erano difetti di interpretazione della riga di comando, uno sotto zsh e uno su PowerShell, e li ho raccontati scrivendo della modalità mask e del controllo dei permessi di Bash nella 2.1.221. Nella 2.1.222 il difetto sta in git, negli hook e nei messaggi fra sessioni. In due release consecutive, nessuna delle correzioni riguarda il ragionamento del modello. Riguardano tutte l'impalcatura che gli sta intorno.

Le altre tre correzioni ai permessi di Claude Code 2.1.222

Oltre al worktree, Claude Code 2.1.222 sistema tre punti in cui il controllo dei permessi non arrivava. Il primo sono gli hook PreToolUse che approvano automaticamente una chiamata: dentro i task in background, cioè riassunti, compattazione e rinomina delle sessioni, quegli hook aggiravano le restrizioni sui tool. Chi ha costruito un'auto-approvazione per non farsi interrompere aveva quindi una regola che copriva più di quanto pensasse.

Il secondo è la comunicazione fra agenti. Dalla 2.1.222 i messaggi inviati ad altre sessioni con SendMessage vengono valutati dal classificatore dei permessi prima di partire, in modalità auto. Detto al contrario: prima non lo erano, e un agente poteva mandare a un altro agente istruzioni che non sarebbero passate se le avesse eseguite lui. Nella stessa release SendMessage smette anche di fallire quando il riassunto è troppo lungo, e lo tronca.

Il terzo riguarda chi clona repository altrui. L'avvio automatico del Remote Control non può più essere acceso dalle impostazioni locali di un repository, cioè da .claude/settings.json o .claude/settings.local.json. Quei file possono ancora spegnerlo, ma per accenderlo serve il livello utente, con /config. Fino alla 2.1.222 un file di configurazione dentro un repository scaricato da internet poteva quindi attivare da solo una funzionalità di controllo remoto sulla macchina di chi lo apriva.

Questa parte mi tocca da vicino, e in modo verificabile. Il repository di marcomasut.com ha una cartella .claude/ che contiene soltanto skills/articolo/, con dentro le regole di scrittura che sto seguendo mentre scrivo. Non c'è nessun settings.json e nessun settings.local.json, e per una volta l'assenza di un file è la cosa interessante: è esattamente il file che, prima della 2.1.222, chiunque clonasse un repository si portava a casa senza guardarlo. Su questo repository girano due routine automatiche che committano su main ogni mattina, una per gli articoli di attualità e una per quelli business, e il criterio con cui decido quali permessi dare a un agente l'ho messo per iscritto in quali permessi dare all'AI in azienda. Il criterio non cambia. Cambia il fatto che una riga di configurazione dentro un repository di terzi conti meno di prima, e questa è una buona notizia.

Cosa conviene fare oggi

Aggiornare con npm install -g @anthropic-ai/claude-code e poi controllare due file, non uno. Il primo è la propria configurazione degli hook: se esiste un hook PreToolUse che approva automaticamente qualcosa, la sua portata reale fino a ieri includeva i task in background, quindi va riletto sapendo che copriva anche riassunti, compattazione e rinomina. Il secondo sono i .claude/settings.json e .claude/settings.local.json dei repository clonati di recente, per vedere se qualcuno di quei file toccava l'avvio automatico del Remote Control mentre poteva ancora accenderlo.

C'è poi una cosa piccola che romperà qualche abitudine: la funzione ultraplan è stata rimossa. Il changelog ne riporta soltanto la rimozione, senza motivazione e senza indicare cosa usare al suo posto, quindi chi l'aveva messa dentro una procedura fissa deve sostituirla a mano dopo l'aggiornamento. Nella stessa release entrano anche correzioni meno vistose ma comode, come il controllo di connettività all'avvio che non si blocca più dietro un proxy HTTPS e /usage che smette di attribuire ai server MCP ogni turno successivo a una loro chiamata, contando solo le richieste che hanno davvero consumato i loro risultati.

Se dovessi tenere una sola frase di questa release, sarebbe che l'isolamento di un agente non è una proprietà che si attiva, ma una proprietà che va verificata su ogni strada che quell'agente può prendere. I file, la shell, git, gli hook, i messaggi verso gli altri agenti, la configurazione che arriva insieme al codice. La 2.1.222 ne chiude tre in un colpo solo, il che è ottimo e allo stesso tempo dice quanto sia facile lasciarne aperta una. Chi sta costruendo automazioni sopra Claude Code, e i passaggi per farlo in modo ordinato stanno nella guida per installare e configurare Claude Code, farebbe bene a smettere di chiedersi se l'agente è isolato e a chiedersi invece rispetto a cosa lo è.

Domande frequenti

Un worktree isolato in Claude Code è un confine di sicurezza?

Un worktree isolato in Claude Code serve a far lavorare una sessione in una copia separata del repository invece che nel checkout principale. Fino alla versione 2.1.222 quell'isolamento non copriva tutto: le sessioni isolate e i loro subagent potevano eseguire comandi git distruttivi contro il checkout principale. Dalla 2.1.222 l'isolamento si applica alle modifiche ai file e a Bash in ogni tipo di sessione.

Gli hook PreToolUse possono aggirare le restrizioni sui tool?

Gli hook PreToolUse di Claude Code che approvano automaticamente una chiamata potevano aggirare le restrizioni sui tool dentro i task in background, cioè riassunti, compattazione del contesto e rinomina delle sessioni. La versione 2.1.222 corregge il comportamento. Chi ha scritto hook di auto-approvazione fa bene a rileggerli, perché la loro portata reale era più ampia di quella dichiarata.

Come si attiva il Remote Control di Claude Code?

Dalla versione 2.1.222 il Remote Control di Claude Code si attiva soltanto a livello utente, con il comando `/config`. Le impostazioni locali di un repository, cioè `.claude/settings.json` e `.claude/settings.local.json`, non possono più accenderlo da sole, mentre possono ancora spegnerlo. È un cambiamento che riguarda chiunque cloni repository di altri.

Che fine ha fatto la funzione ultraplan di Claude Code?

La funzione ultraplan è stata rimossa da Claude Code nella versione 2.1.222 del 4 agosto 2026. Il changelog ufficiale riporta soltanto la rimozione, senza motivazione né percorso di migrazione. Chi la usava in una procedura abituale deve quindi sostituirla dopo l'aggiornamento.

Quante versioni di Claude Code sono uscite il 4 agosto 2026?

Il 4 agosto 2026 il changelog ufficiale di Claude Code registra due versioni, la 2.1.221 e la 2.1.222. La 2.1.221 porta la Focus view su VSCode e la modalità mask per le credenziali in sandbox, la 2.1.222 è quasi interamente correzioni, concentrate sull'isolamento delle sessioni e sui controlli dei permessi.

Continua a leggere

claude

Claude Code 2.1.221: la modalità mask e il buco nei permessi di Bash

Claude Code 2.1.221 introduce la modalità mask per le credenziali in sandbox e chiude un aggiramento del controllo dei permessi del tool Bash.
claude

Claude Code: cos'è, come funziona e perché dovresti usarlo

Claude Code è il tool di Anthropic per scrivere codice dal terminale con l'AI. Come funziona, cosa lo distingue e perché lo uso ogni giorno.
claude

Il prompt non è un firewall: cosa insegna l'incidente di Anthropic

Tre modelli Claude sono usciti da ambienti di test isolati e hanno colpito aziende vere. Cosa insegna a chi fa girare agenti sul serio.

Risorse pratiche su questi temi

Video

NVIDIA, OpenAI e Google hanno firmato lo stesso documento sull'AI (e Anthropic no)

76 aziende hanno firmato il documento pubblicato da NVIDIA sui modelli a pesi aperti. Cosa chiedono e perché Anthropic non c'è.
Repo

Trasforma Claude in un team di cybersecurity

817 skill di sicurezza da installare in Claude Code, Cursor o Copilot con un comando. Cosa contengono davvero, quali servono a un'azienda e dove si fermano.