el cabezal del guardián decía SIETE lugares y ya son ocho
El chequeo entró en el commit anterior y el cabezal se quedó en el número viejo — que es exactamente lo que este fichero se recrimina a sí mismo dos veces en el runner de la suite: un número escrito a mano envejece callado.
Semantic delta
No definition changed: this change is text, documentation or data.
1 files · +11 −5
diff --git a/scripts/test-atuq-boveda-coherente.py b/scripts/test-atuq-boveda-coherente.py
index 75e6f65b..d222f668 100755
--- a/scripts/test-atuq-boveda-coherente.py
+++ b/scripts/test-atuq-boveda-coherente.py
@@ -8,7 +8,7 @@
python3 scripts/test-atuq-boveda-coherente.py --negative-control-deriva
── QUÉ MIRA, Y POR QUÉ ESTE GUARDIÁN EXISTE APARTE ───────────────────────────────────────────
-Una extensión de `atuq` está enchufada en SIETE lugares distintos, y ninguno da error si falta:
+Una extensión de `atuq` está enchufada en OCHO lugares distintos, y ninguno da error si falta:
manifest.json el id que la extensión declara
distribution/policies.json la política que la instala
@@ -17,6 +17,7 @@ Una extensión de `atuq` está enchufada en SIETE lugares distintos, y ninguno d
recipes/puriy-costura.toml el COMMIT del host, que decide si sus verbos existen
docs/state/targets.toml quién DECLARA al dueño y al diálogo en las imágenes
recipes/agora-cli.toml quién puede SEMBRAR la identidad con la que la base se abre
+ recipes/boveda.toml y si lo pineado es lo de HOY, o una versión vieja que anda
Si falta la política, la extensión no se instala y el usuario ve un navegador sin la función. Si
falta el permiso del host, la extensión se instala y **se conecta a nada** —`connectNative` falla
@@ -28,19 +29,24 @@ extensión se instala, conecta, manda `vault.match` y el host contesta `{"ok":tr
—«cerrada», que es una respuesta EXITOSA— porque del otro lado del socket no hay nadie: el dueño
está sellado y en ninguna imagen. Y si la imagen no trae un sembrador de identidad, el dueño SÍ
está, abre su ventana, dice por qué no hay bóveda… y el navegador vuelve a ver `locked:true` —
-correcto y para siempre, porque nadie tiene con qué desbloquearla (§7.undecies).
-Ninguno de los seis se ve como un error: se ven como «no anda».
+correcto y para siempre, porque nadie tiene con qué desbloquearla (§7.undecies). Y si la receta de
+la app está pineada DETRÁS de su propio paquete, todo lo anterior está en orden y lo que se ve es
+un comportamiento viejo: el §7.quaterdecies salió de una ventana que decía «se abre al entrar a la
+sesión» cuando el llavero era el que había fallado.
+Ninguno de los ocho se ve como un error: se ven como «no anda», o peor, como que anda.
Éste NO reemplaza al guardián de metal (servidor HTTP, navegador real, login real, el diálogo de
consentimiento a la vista). Lo precede: mide lo que se puede medir sin construir nada, en un
segundo, y ahorra descubrir en metal un renglón que faltaba en un JSON.
-── LOS CUATRO CONTROLES NEGATIVOS, UNO POR AFIRMACIÓN ────────────────────────────────────────
+── LOS CINCO CONTROLES NEGATIVOS, UNO POR AFIRMACIÓN ─────────────────────────────────────────
`--negative-control` saca el permiso del host de una copia en memoria y exige que esto lo detecte.
`--negative-control-verbo` le manda al quinto chequeo un verbo inventado y exige lo mismo.
`--negative-control-perfil` saca a `boveda` de los cuatro perfiles de escritorio, también en
memoria, y exige que el sexto lo vea. `--negative-control-sembrador` hace lo mismo con `agora-cli`
-y exige que el séptimo lo vea. Sin ellos, un guardián que siempre dice que sí se vería
+y exige que el séptimo lo vea. `--negative-control-deriva` finge el pin VIEJO de `boveda` —el que
+de verdad estuvo puesto hasta el 2026-09-22— y exige que el octavo lo vea atrasado; es el único de
+los cinco cuyo «mal» ya ocurrió. Sin ellos, un guardián que siempre dice que sí se vería
idéntico a uno que funciona.
Y el quinto chequeo trae además un control POSITIVO —`sct.observe`, que el host pineado tiene que