Il rollback è una prova, non una lista di comandi inversi
Trasparenza: sviluppo Tabwell. La versione pubblica 1.1.1 consolida, dopo un test funzionale esterno, l’architettura di ripristino introdotta dalla 1.1.0: bundle con più finestre, journal locale durevole, Gentle Restore e operazioni «Salva e chiudi» / «Sostituisci corrente» progettate per fallire senza nascondere lo stato.
Il problema generale è questo: in un’estensione Manifest V3 non esiste una singola transazione che comprenda più finestre di Chrome. Il service worker può essere sospeso, una scheda può cambiare indirizzo e un gruppo può essere ricostruito soltanto in parte. Al risveglio, eseguire alla cieca i comandi inversi non è un rollback: è una seconda mutazione basata su informazioni vecchie.
Per questo il journal deve conservare almeno quattro cose distinte:
1. l’intento, con l’identità dell’operazione e lo snapshot scelto;
2. una traccia durevole della fase e della frontiera già raggiunta;
3. la relazione tra l’operazione e gli oggetti creati;
4. una ricevuta finale che dica che cosa è davvero avvenuto e se un nuovo tentativo è sicuro.
La 1.1.1 ha irrigidito proprio il terzo confine. Se l’aggiornamento dei metadati di un gruppo esaurisce i tentativi, Tabwell rilegge lo stato corrente e rimuove soltanto la struttura che può ancora essere verificata come creata dalla stessa operazione. Se la prova non coincide, conserva l’oggetto. È una scelta meno elegante di una pulizia totale, ma più corretta: l’utente o un’altra operazione potrebbero aver già riutilizzato quella scheda o quel gruppo.
Lo stesso principio compare in «Sostituisci corrente». Chrome può esporre temporaneamente `pendingUrl` anche quando la destinazione effettiva non è cambiata: la 1.1.1 accetta quel segnale stretto, ma continua a fermarsi davanti a una vera deriva dell’URL. Non si tratta di rendere l’operazione permissiva; si tratta di distinguere un’osservazione transitoria da una modifica reale.
Anche Stop ha un significato preciso. Interrompe il coordinamento di Gentle Restore, ma non chiude automaticamente le schede segnaposto già create. Senza una ricevuta durevole di proprietà, la pulizia automatica rischierebbe di eliminare una scheda che nel frattempo è diventata utile. Questa limitazione resta visibile e intenzionale.
La lezione utile oltre Tabwell: un rollback affidabile non è la lista inversa dei passi eseguiti. È un obbligo di prova applicato allo stato presente. Se non si può dimostrare di possedere ancora un oggetto, conservarlo è spesso la decisione meno distruttiva.
Figura — il flusso «intento → traccia durevole → riconvalida → risultato». Il ramo verde consente la pulizia soltanto quando la proprietà coincide; il ramo ambra conserva lo stato quando la prova manca.
Testo e diagramma preparati con assistenza AI e ricontrollati sui fatti della release pubblica 1.1.1. #software #affidabilità #browser #testing