tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1574Shell 204Rust 111Markdown 993763 Definiciones

harkaq: gate 2 de la campaña — ¿el binario TIENE la jaula dentro?

La golden hornea un target/release/hammer viejo y el rsync excluye /target ⇒ si
el cargo build del provisioning no corre, el worker construye alegremente SIN
JAULA y produce cero veredictos.

PASÓ: la primera corrida molió 2 recetas con un binario del 29/06 (0 ocurrencias
de 'harkaq' en strings) y las marcó 'sin veredicto' como si fuera culpa de las
recetas. Ocho horas así son la noche entera perdida, y el log habría dicho
'salteada' — nunca 'estoy ciego'. Es el falso Hermetico de D9 mudado al
orquestador: la ausencia como respuesta tranquilizadora.

Ahora aborta si strings no encuentra harkaq en el binario. Mismo criterio que el
gate del ABI: no medir es mejor que creer que se mide.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

593a11c0342873ef3c53a9f3d772a4b135d5e513 · por sergio · (hace 3 meses) · padre 32e8ac557 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +15 −2

diff --git a/scripts/farm/harkaq-campana.sh b/scripts/farm/harkaq-campana.sh
index 07d3d8b3..7982260a 100755
--- a/scripts/farm/harkaq-campana.sh
+++ b/scripts/farm/harkaq-campana.sh
@@ -30,14 +30,27 @@ mkdir -p "$OUT"
 export HARKAQ=1 HARKAQ_BIN="$BIN" HARKAQ_BASE="${HARKAQ_BASE:-$BIN/base.policy}"
 export HARKAQ_TIMEOUT="${HARKAQ_TIMEOUT:-300}"
 
-# Gate: sin ABI>=7 el kernel no audita y TODOS los veredictos saldrían SinEvidencia. Moler la
+# Gate 1: sin ABI>=7 el kernel no audita y TODOS los veredictos saldrían SinEvidencia. Moler la
 # noche entera para producir "no sabemos" es peor que no moler.
 abi=$(python3 -c 'import ctypes;print(ctypes.CDLL("libc.so.6").syscall(444,None,0,1))' 2>/dev/null)
 if [ "${abi:-0}" -lt 7 ]; then
     echo "ABORTO: Landlock ABI ${abi:-?} < 7 ⇒ sin audit de denegaciones. ¿La golden es la 6.17?"
     exit 4
 fi
-echo "$(date -u +%FT%TZ) campaña harkaq: ABI $abi, cola $LISTA"
+
+# Gate 2: ¿el binario TIENE harkaq dentro? La golden hornea un `target/release/hammer` viejo y el
+# rsync excluye /target ⇒ si el `cargo build` del provisioning no corrió, el worker construye
+# alegremente SIN LA JAULA y produce cero veredictos. Pasó: la primera corrida molió 2 recetas con
+# un binario del 29/06 (0 ocurrencias de "harkaq") y las marcó "sin veredicto" como si fuera culpa
+# de las recetas. Ocho horas así son la noche entera perdida — y el log diría "salteada", nunca
+# "estoy ciego". Es el falso `Hermetico` de D9 mudado al orquestador: la ausencia como respuesta
+# tranquilizadora.
+if ! strings ./target/release/hammer 2>/dev/null | grep -q harkaq; then
+    echo "ABORTO: ./target/release/hammer NO tiene harkaq compilado (¿corrió el cargo build?)."
+    echo "        Sin esto la campaña muele sin jaula y produce 0 veredictos, en silencio."
+    exit 4
+fi
+echo "$(date -u +%FT%TZ) campaña harkaq: ABI $abi, binario con jaula ✓, cola $LISTA"
 
 while :; do
     hechas=0; nuevas=0