latido: el contrato del kernel se comprueba solo en cada cosecha
El gate de SDD 25 §4.ter existía y NADIE lo corría. Un kernel reconstruido sin MEMCG volvería a pasar inadvertido — y ese fallo no se ve del lado del desarrollo, porque el kernel de la máquina de trabajo sí trae MEMCG: sólo se ve comprobando el artefacto. Mismo cable que el vigía de fuentes y por la misma razón que está escrita ahí arriba: lo que nadie refresca envejece hacia el optimismo. Ahora cada ciclo deja el veredicto en docs/state/kernel-contract.txt y el git log lo muestra como el resto del khipu. El fichero se escribe por temporal y sólo se mueve si tiene contenido: contract sale != 0 cuando el contrato no se cumple —y ese rojo es justo lo que hay que guardar—, pero un fichero vacío se leería como «nada que objetar». Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
contrato docs/state/kernel-contract.toml
|
||||
|
||||
✓ linux · ./store/d2a03c29930b72c3d13a8b2931c25bbe80af289689db7fbcd029e11a9cc786cc-linux/boot/config-6.16.12
|
||||
perfil qemu-serial (9 capacidad(es) miradas)
|
||||
kernel Linux/x86_64 6.16.12 Kernel Configuration
|
||||
· falta (no bloquea) limite-memoria — Tope de memoria por unidad [MEMCG]
|
||||
✓ las 5 capacidades exigidas están
|
||||
|
||||
✓ linux-generic · ./store/23f1cc43ac85e0b26763ca3444258ace8d93008c6c3ec442051c4dd9a662a189-linux-generic/boot/config-7.1.2-generic
|
||||
perfil anfitrion-cards (13 capacidad(es) miradas)
|
||||
kernel Linux/x86_64 7.1.2 Kernel Configuration
|
||||
✓ las 11 capacidades exigidas están
|
||||
|
||||
✓ linux-gioser · ./store/b026fe145235181614b6797b697e9ae26f680b6d04596c55e9afee155d68baa0-linux-gioser/boot/config-6.16.12-metal
|
||||
perfil anfitrion-cards (13 capacidad(es) miradas)
|
||||
kernel Linux/x86_64 6.16.12 Kernel Configuration
|
||||
✓ las 11 capacidades exigidas están
|
||||
|
||||
✓ linux-metal · ./store/2ed8f54aa64e1a1db8c5a6291568e21a0f8cb9757d0d17cfe9810b369a48ab08-linux-metal/boot/config-6.16.12-metal
|
||||
perfil anfitrion-cards (13 capacidad(es) miradas)
|
||||
kernel Linux/x86_64 6.16.12 Kernel Configuration
|
||||
✓ las 11 capacidades exigidas están
|
||||
|
||||
✓ linux-metal-dual · ./store/714f46d63736414b2e08816e5a08249e175d5b9eac4fe653af50fc6ab4c2eee1-linux-metal-dual/boot/config-7.1.2-metal-dual
|
||||
perfil anfitrion-cards (13 capacidad(es) miradas)
|
||||
kernel Linux/x86_64 7.1.2 Kernel Configuration
|
||||
✓ las 11 capacidades exigidas están
|
||||
|
||||
· 10 sellado(s) SUPERADO(s) por la receta de hoy — no bloquean, 9 con faltas:
|
||||
linux · ./store/fda2ec4a245fd97df56b0db5c66856fe9de51970af5690b02f995a6dacd2cc40-linux/boot/config-6.16.12 cumplía
|
||||
linux-generic · ./store/16ac6e5e299f9200585b0c28f3b76a59e16eaaf91fb154edd6ae07a5b1821734-linux-generic/boot/config-7.1.2-generic le falta: limite-memoria
|
||||
linux-generic · ./store/1c8625f7d2fe6fc574533b1f44dfd1f5fd2716fe164d8bf015a87d376e63e631-linux-generic/boot/config-7.1.2-generic le falta: limite-memoria
|
||||
linux-generic · ./store/9a79714519324f72c60c367969c5d0a24b1ce7dfd602ccc179b97c5b294269b2-linux-generic/boot/config-7.1.2-generic le falta: limite-memoria
|
||||
linux-gioser · ./store/8ffd57109a2f7102c1bbbbc91cf0e729047312eee1a4e3fdb8b178680cc94264-linux-gioser/boot/config-6.16.12-metal le falta: limite-memoria
|
||||
linux-metal · ./store/5cb11c344347caf0f136af249e3ad8141264a0d8756a7bc3392854eea6dc23cd-linux-metal/boot/config-6.16.12-metal le falta: limite-memoria
|
||||
linux-metal · ./store/bc995714b06984ae7d053af9d8263287a024afbe979565482dacbe192a5899c3-linux-metal/boot/config-6.16.12-metal le falta: limite-memoria
|
||||
linux-metal · ./store/e057bf40b11cd766e4ec834e96c794ded7702cc7fc8ee4112abfc8ae5dcf4487-linux-metal/boot/config-6.16.12-metal le falta: limite-memoria
|
||||
linux-metal-dual · ./store/e6e8fec7f22ab1784a7c2881350a36cb5a8c7b6f8ed99061d5bc5a7f45f8a4ae-linux-metal-dual/boot/config-7.1.2-metal-dual le falta: limite-memoria
|
||||
linux-metal-dual · ./store/ef4f220225e8490fbbaa2f0736252fa7619da7ed79dd601ba9b17f9cc619c423-linux-metal-dual/boot/config-7.1.2-metal-dual le falta: limite-memoria
|
||||
Siguen siendo ciertos: si una máquina arranca uno de éstos, sus Cards corren con lo que ese kernel traiga. Se reconstruyen o se podan (`scripts/store-gc.sh`).
|
||||
|
||||
resumen 5 de 5 config(s) VIGENTES cumplen su perfil · 10 superado(s)
|
||||
|
||||
@@ -186,6 +186,22 @@ if [ -x "$HAMMER" ]; then
|
||||
# No descarga: pide cabeceras. Primera corrida (2026-08-26): 8 muertas de 1167, y TRES de ellas
|
||||
# —busybox, freetype, freetype-shared— selladas y en uso.
|
||||
scripts/fuentes/fuentes-vigia.sh >/dev/null 2>&1 && echo " fuentes-vigia.json ✓" || echo " ⚠ fuentes-vigia falló"
|
||||
# CONTRATO DE CAPACIDADES DEL KERNEL (SDD 25 §4.ter). Mismo cable que el vigía de fuentes y por la
|
||||
# misma razón: el gate existía y NADIE lo corría. Un kernel reconstruido sin `MEMCG` volvería a
|
||||
# pasar inadvertido, y ese fallo **no se ve del lado del desarrollo** —el kernel de esta máquina sí
|
||||
# lo trae—, sólo comprobando el artefacto. Acá el veredicto queda en docs/state/ y el `git log` lo
|
||||
# muestra solo, como el resto del khipu.
|
||||
# Se escribe por temporal y sólo se mueve si tiene contenido: `contract` sale != 0 cuando el
|
||||
# contrato NO se cumple —y ese rojo es justo lo que hay que guardar—, pero un fichero VACÍO se
|
||||
# leería como «nada que objetar», que es el fallo de CLAUDE.md §3.
|
||||
"$HAMMER" --store ./store kernel contract --sealed > work/.kernel-contract.tmp 2>&1
|
||||
if [ -s work/.kernel-contract.tmp ]; then
|
||||
mv work/.kernel-contract.tmp docs/state/kernel-contract.txt
|
||||
echo " kernel-contract.txt ✓ $(grep -m1 '^resumen' docs/state/kernel-contract.txt || echo '(sin resumen)')"
|
||||
else
|
||||
rm -f work/.kernel-contract.tmp
|
||||
echo " ⚠ kernel contract no produjo salida — NO piso el veredicto anterior"
|
||||
fi
|
||||
else
|
||||
echo " ⚠ sin binario hammer en $HAMMER — no regenero estado"
|
||||
fi
|
||||
@@ -193,7 +209,7 @@ fi
|
||||
# 4. Commitear SÓLO el estado firme (el avance que el humano sigue). Recetas nuevas que YO autoré se
|
||||
# commitean aparte, a mano, para no meter autoría a medias en un commit de cron.
|
||||
if [ "${NO_COMMIT:-}" != "1" ]; then
|
||||
git add docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/build-state-cosmic.json docs/state/build-state-wlr.json docs/state/drenaje.json docs/state/fuentes-vigia.json 2>/dev/null || true
|
||||
git add docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/build-state-cosmic.json docs/state/build-state-wlr.json docs/state/drenaje.json docs/state/fuentes-vigia.json docs/state/kernel-contract.txt 2>/dev/null || true
|
||||
if ! git diff --cached --quiet 2>/dev/null; then
|
||||
git commit -q -m "estado: cosecha granja $(ts) — avance del árbol KDE" 2>/dev/null \
|
||||
&& { git push -q origin main 2>/dev/null && echo "==> estado commiteado+pusheado" \
|
||||
|
||||
Reference in New Issue
Block a user