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 1572Shell 203Rust 109Markdown 993728 Definiciones

atuq: el sembrador de la bóveda — agora-cli sube de pin y aprende a no inventar la frase

La unidad 12 del SDD 26 quedó en esto (§7.undecies): la bóveda entró a las
cuatro imágenes y NADIE puede abrirla, porque ninguna trae un binario capaz de
sembrar `pacha_llavero::SEED_IDENTIDAD`. `agora-cli` es el único del corpus que
sabe hacerlo — y estaba sellado con `perfiles: []` y pineado al 2026-06-18,
donde el verbo todavía no existe (`git grep` sobre el pin: 0 y 0, con HEAD de
control dando 4 y 1).

Sube a `fd08dc03a`, que además trae el arreglo que este oficio vuelve
obligatorio: sin `AGORA_PASSPHRASE`, `Sesion::abrir()` caía en la frase de
desarrollo "agora-dev" con un aviso por stderr y un ✓ en pantalla. En una
máquina de trabajo es cómodo; en una imagen de escritorio es la bóveda de todo
el mundo cifrada con una palabra pública, porque el keystore va con Argon2id +
ChaCha20-Poly1305 bajo esa frase. Ahora con terminal se pregunta, sin eco y dos
veces al crear; la de desarrollo queda sólo para el caso sin terminal.

Y con el pin nuevo hace falta `cargo_vendor_dir`, que el pin viejo no
necesitaba: tawasuyu commitea su propio `vendor/` desde entonces.

hash: b3:e05c41f1 → b3:6520470e (sin construir todavía)

25cb9d150a5ce84cfe125a217118cb576c65e951 · por Sergio · (hace 1 mes) · padre 146dd15b3 · ver el árbol en este commit

Delta semántico

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

1 archivos · +55 −7

diff --git a/recipes/agora-cli.toml b/recipes/agora-cli.toml
index 06a16944..1109a1d6 100644
--- a/recipes/agora-cli.toml
+++ b/recipes/agora-cli.toml
@@ -1,18 +1,66 @@
 # agora-cli — la cara CLI del ágora (tawasuyu): opera el keystore y el grafo firmado en shell,
-# compartidos con agora-app. Etapa G: poblar el catálogo con apps propias de tawasuyu.
+# compartidos con agora-app.
 #
-# Receta Cargo (patrón arje-zero/dominium-cli): source = monorepo tawasuyu a commit fijado 9967b02c
-# (Cargo.lock committeado ⇒ build --locked reproducible), `-p agora-cli`, estático zig-cc. bin==package.
-# Deps livianas (sin tokio/libp2p/axum) ⇒ build sano. Comparte commit con arje-zero/dominium-cli ⇒
-# reusa el árbol fuente fetcheado.
-
+# ── POR QUÉ ESTA RECETA CAMBIÓ DE OFICIO (2026-09-21) ──────────────────────────────────────────
+# Nació para la etapa G (poblar el catálogo con apps propias de tawasuyu) y estuvo sellada con
+# `perfiles: []` —o sea en ninguna imagen— desde entonces. Entra a las cuatro imágenes de
+# escritorio por otra razón, y es la que cierra la unidad 12 del SDD 26: **es el único binario del
+# corpus capaz de sembrar la identidad con la que la bóveda se abre.**
+#
+# La cadena, medida entera hacia atrás desde la app (SDD 26 §7.undecies):
+#
+#   `boveda` abre su base con una clave derivada de la seed de identidad
+#     └─ que `pacha-boveda-llimphi` saca del llavero de SESIÓN, clave `pacha_llavero::SEED_IDENTIDAD`
+#         └─ que en TODO tawasuyu escriben dos binarios: `agora-cli identity unlock`
+#            y el onboarding `churay-welcome-llimphi`
+#             └─ `agora-cli` estaba en ninguna imagen · `churay-welcome` no tiene receta
+#
+# ⇒ hasta hoy, en las cuatro imágenes, `abrir()` daba `Err(boveda-cerrada)` SIEMPRE. No «el
+# usuario todavía no la desbloqueó»: **no tenía con qué**. Y como «cerrada» es una respuesta
+# EXITOSA (`{"ok":true,"locked":true}`), ni un log ni la insignia la distinguían de lo otro.
+#
+# ⚠ **No es el camino de DISEÑO y conviene decirlo.** El de diseño es el wizard de bienvenida
+# (`churay-welcome-llimphi`, que SÍ tiene binario: `src/main.rs` sin `[[bin]]` ⇒ cargo lo descubre
+# con el nombre del paquete), que pide la frase en un campo y no en una terminal. Pero ese wizard
+# decide además backend de IA, dotfiles, fondo de pantalla y chasqui: traerlo es decidir la
+# experiencia de primer arranque entera, y eso no se hace de paso. Ésta hace UNA cosa, es la que
+# el propio tawasuyu nombra como «la que siembra el login» (comentario de `pacha-secretos`), y no
+# impone ningún flujo. Cuando `churay-welcome` tenga receta, esto se revisa.
+#
+# ── EL PIN, Y POR QUÉ NO ES EL DE SUS HERMANAS ────────────────────────────────────────────────
+# Sube de `9967b02c` (2026-06-18) a `fd08dc03a`. Dos razones, las dos medidas:
+#
+#  1. **en el pin viejo el verbo no existe**: ni `SEED_IDENTIDAD` ni `desbloquear` están en ese
+#     commit (`git grep` sobre el pin da 0 y 0, con HEAD de control dando 4 y 1). O sea que
+#     declararlo en los perfiles con el pin viejo habría metido 3 M en cuatro imágenes que siguen
+#     sin poder abrir nada — el error de `foot`, otra vez, disfrazado de arreglo.
+#  2. **y en el pin nuevo hay además un arreglo que este oficio vuelve obligatorio**: sin
+#     `AGORA_PASSPHRASE`, `Sesion::abrir()` caía en la frase de desarrollo `"agora-dev"` con un
+#     aviso por stderr y un ✓ en pantalla. En una máquina de trabajo es cómodo; en una imagen de
+#     escritorio es **la bóveda de todo el mundo cifrada con una palabra pública**, porque el
+#     keystore que guarda la seed va con Argon2id + ChaCha20-Poly1305 bajo esa frase. Ahora, con
+#     terminal, se PREGUNTA (sin eco, y dos veces al crear); la frase de desarrollo queda sólo
+#     para el caso sin terminal —cron, pipes, CI—, que es a quien rompería quitarla.
+#     Arreglado en tawasuyu en el propio `fd08dc03a`, con test en los dos sentidos.
+#
+# ⚠ El pin NO coincide con el de `boveda`/`shuma-pregunta` (`6f0408d40`) ni con el de sus hermanas
+# de monorepo (`9967b02c`: `dominium-cli`, `cosmos-cli`, los `arje-*`). El árbol de fuentes se
+# comparte por `<repo>-<sha>`, así que esto **paga un vendoreo propio de ~2,4 G** en el worker. Se
+# paga a propósito: mover `boveda` (22 M, llimphi GUI) para que coincidan cuesta dos builds caros y
+# arrastra 28 commits de upstream sin relación con esto. El día que el pin de `boveda` suba, que
+# suba a éste y los árboles se colapsan.
 name    = "agora-cli"
 version = "0.0.1"
 license = "MIT"
 
 [source]
 repo   = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git"
-commit = "9967b02cf597df6d065edbad8d6669b5653d4928"
+commit = "fd08dc03a6596f4b7cf466c1c853099fff1e6e4e"
+# tawasuyu COMMITEA su propio `vendor/` (smithay parcheado por `[patch.crates-io]` POR RUTA); el
+# `cargo vendor` de takana lo pisaría y el error hablaría de un crate cualquiera, no de esto. El
+# pin viejo era de antes de que ese `vendor/` existiera, por eso esta receta no lo traía. No entra
+# en `hash_inputs`.
+cargo_vendor_dir = ".hammer-cargo-vendor"
 
 [build]
 compiler = "zig-cc"