LOKI LogoLOKI CHAOSv1.11.0

Caos de estado y reloj ('Poisoned Well')

Corrompe el almacenamiento persistido (localStorage / sessionStorage), dispara QuotaExceededError, adelanta el reloj de JS y evalúa la supervivencia al rehidratar con page.reload().

Uso

bash
loki run http://localhost:8000 --persona novice-chaotic --state-chaos
loki run http://localhost:8000 --swarm
loki run http://localhost:8000 --no-state-chaos

Personas que lo activan

StateChaosEngine (src/loki/engine/state_chaos.py) se ejecuta durante sesiones con novice-chaotic, swarm (--swarm) y all cuando --state-chaos está habilitado (activo por defecto).

Tipos de fallo 'Poisoned Well' (`--state-chaos`)

FlagTipoPor defectoDescripción
storage_corrupt_jsonlocalStorage / sessionStoragetruncated JSONTrunca valores JSON serializados a mitad de objeto (ej. {"items":[{"id":1) para exponer llamadas JSON.parse() sin protección durante la hidratación de estado.
storage_trap_literallocalStorage / sessionStorage"undefined", "null", "NaN"Reemplaza valores persistidos con literales trampa de JavaScript ("undefined", "null", "NaN", "[object Object]").
storage_type_swap / schema_striplocalStorage / sessionStorageZustand / Redux-Persist awareIntercambia tipos esperados (arreglos por números, objetos por cadenas, totales positivos por -999999) o elimina claves internas de envolturas {state, version}.
quota_exhaustedStorage.prototype.setItemQuotaExceededErrorSobrescribe Storage.prototype.setItem en el contexto de la página para lanzar DOMException("QuotaExceededError") en escrituras posteriores.
clock_driftDate.now / new Date+1h, +2h, +24hAdelanta el reloj JavaScript del cliente a mitad de sesión para exponer bucles de refresco de JWT expirados, temporizadores rotos y fallos de TTL en caché.
poisoned_reloadpage.reload()end of waveRecarga la página manteniendo el almacenamiento envenenado e inspecciona el DOM en busca de pantallas en blanco por colapso de hidratación ([UI Freeze / Poisoned Reload Collapse]).