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 1463Shell 160Markdown 91Rust 853030 Definiciones

arnés de la imagen: el piso del sello se COMPRUEBA — un piso que falla callado no existe

Los 180 s de `PISO_SELLO` son de esta máquina (TCG sin KVM y con la carga que tenga el anfitrión,
igual que los +97/+120/+137 de la pintura). Con el anfitrión cargado el mismo arranque puede no
llegar al gancho que sella el éxito, y entonces la corrida suma al contador de caídas y envenena la
siguiente EN SILENCIO — que es exactamente como empezó todo esto.

Ahora que `toolkit.startup.last_success` se lee antes y después, eso se puede decir, así que se dice:

  ✓ el arranque SELLÓ el éxito (last_success X → Y): esta corrida no envenena la siguiente
  ⚠⚠ el sello NO se movió: este arranque no terminó ⇒ la corrida SUMA al contador. Subí PISO_SELLO

Es la diferencia entre un piso confiado y un piso comprobado, y cuesta cuatro líneas porque el dato
ya estaba medido y guardado.

db24d206dc6384369497cd2eaa0c7510d17170fb · por Sergio · (hace 1 mes) · padre 5b47cd596 · ver el árbol en este commit

Delta semántico · 1

scripts/cosmic/atuq-en-imagen.py

  • cambió por dentro fn main

1 archivos · +14 −0

diff --git a/scripts/cosmic/atuq-en-imagen.py b/scripts/cosmic/atuq-en-imagen.py
index d2281439..436b954a 100755
--- a/scripts/cosmic/atuq-en-imagen.py
+++ b/scripts/cosmic/atuq-en-imagen.py
@@ -649,6 +649,20 @@ def main():
                                       % perfil_d, 60)
                     estado["recent_crashes_despues"] = leer_contador_de_caidas(volcado)
                     estado["last_success_despues"] = leer_sello_de_exito(volcado)
+                    # ⚠ EL PISO SE COMPRUEBA, NO SE CONFÍA. `PISO_SELLO` son 180 s medidos EN ESTA
+                    # máquina (TCG sin KVM, con la carga que tenga el anfitrión): con el anfitrión
+                    # cargado el mismo arranque puede no llegar al gancho, y entonces esta corrida
+                    # SUMA al contador y envenena la siguiente — en silencio, que es como pasó la
+                    # primera vez. Con el sello leído antes y después, eso se puede DECIR.
+                    if estado["last_success_despues"] is not None and \
+                       estado["last_success_despues"] == estado.get("last_success_antes"):
+                        print("   ⚠⚠ el sello NO se movió (%s): este arranque no terminó ⇒ la corrida "
+                              "SUMA al contador de caídas. Si usaste --until-paint, subí PISO_SELLO"
+                              % estado["last_success_despues"])
+                    elif estado["last_success_despues"] is not None:
+                        print("   ✓ el arranque SELLÓ el éxito (last_success %s → %s): esta corrida "
+                              "no envenena la siguiente"
+                              % (estado.get("last_success_antes"), estado["last_success_despues"]))
                     print("---- el contador de caídas, DESPUÉS ----")
                     print(volcado.strip())
                 # ⚠ SÓLO LA FASE BASE SE ANOTA. La serie de `primera-pintura.json` es una TASA del