gioser

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 1184Shell 70Rust 62Markdown 501503 Definiciones

atuq: re-pin del daemon con el arreglo del inmortal, y la lección en el SDD

El §6.9 apunta ahora a tawasuyu `3bd1440d` (`b3:27c7b73a`), que arregla un daemon que
quedaba VIVO PARA SIEMPRE cuando su sesión de torrent no arrancaba: el bucle hacía
`let Ok(g) = gestor() else { continue }` y el `continue` saltaba la evaluación de
«¿sobro?».

Y lo que queda escrito en el §6.9 es CÓMO se encontró, porque es lo reutilizable: no lo
encontró ningún test sino mirar `ps` después de las pruebas —un daemon con 23 minutos y
`idle_seconds = 300`—. Los tests cubrían la decisión como función PURA, y esa función
estaba bien: el que no llegaba a llamarla era el bucle. **Una decisión correcta que
nadie toma se ve igual que una que no existe.**

Los dos guardianes vuelven a pasar sobre los artefactos vigentes (`atuq b3:d1a444ad`,
`puriy-costura b3:cad5c855`, `puriy-costura-torrent b3:27c7b73a`): el positivo con
`TOMADO prueba-atuq.bin` y el socket que nadie arrancó, y el control negativo nombrando
lo que falta.

78f1c6a77153a4915281622f6ead2fa2d706aea0 · por Sergio · (hace 1 mes) · padre 3ff7585aa · ver el árbol en este commit

Delta semántico

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

2 archivos · +10 −1

diff --git a/docs/26-atuq-envoltorio-gecko.md b/docs/26-atuq-envoltorio-gecko.md
index 95275c6c..3221fcf0 100644
--- a/docs/26-atuq-envoltorio-gecko.md
+++ b/docs/26-atuq-envoltorio-gecko.md
@@ -892,6 +892,15 @@ raíces se separan: es lo que hace que un torrent y una descarga del mismo conte
 Y el control negativo prueba lo que importa: **sin el cliente del daemon, el host falla diciéndolo y
 nombrando lo que falta** — no finge haberlo tomado.
 
+⚠ **Y el bug que encontró MIRAR LA MÁQUINA, no un test.** Después de las pruebas, `ps` mostraba un
+daemon con **23 minutos de vida** y `idle_seconds = 300`. El bucle hacía
+`let Ok(g) = gestor() else { continue }`: si la sesión de torrent no se podía crear, el `continue`
+saltaba la evaluación de «¿sobro?» y el daemon quedaba **vivo para siempre** — lo contrario de
+perezoso, que es su única promesa. Los tests cubrían la decisión como función PURA, y esa función
+estaba bien: **el que no llegaba a llamarla era el bucle**. Una decisión correcta que nadie toma se ve
+igual que una que no existe. Arreglado (sin sesión = nada activo) y fijado con dos tests que corren el
+PROCESO y el reloj de verdad, el segundo comprobado volviendo a poner el `continue`.
+
 ⚠ **Lo que sigue sin estar en ningún test automático: un transfer real entre peers.** Haría falta un
 sembrador y una espera que volverían la suite una que nadie corre. Está dicho también en el test del
 daemon, al pie, para que nadie lo lea como «probado de punta a punta».
diff --git a/recipes/puriy-costura-torrent.toml b/recipes/puriy-costura-torrent.toml
index 65634b11..73cb51df 100644
--- a/recipes/puriy-costura-torrent.toml
+++ b/recipes/puriy-costura-torrent.toml
@@ -29,7 +29,7 @@ license = "MIT OR Apache-2.0"
 
 [source]
 repo   = "gitea@git.tawasuyu.net:tawasuyu/tawasuyu.git"
-commit = "ca9947b92f89d00ca549d7bbaa3293ec909db7d8"
+commit = "3bd1440dcb96cfac085cdc669f1cd9c65b5142e5"
 # Obligatorio para cualquier receta desde este monorepo: tawasuyu commitea su propio `vendor/` con
 # un `smithay` parcheado por RUTA, y el `cargo vendor` de takana convertiría ese directorio en uno
 # de reemplazo de fuente, donde cada crate tiene que traer `.cargo-checksum.json` — que ese patch