feat(carmen): carmen-dm como Ente supervisado en la Semilla arje-host

Pieza 2 del DM: declara `mirada-compositor --greeter` como hijo genesis
de arje-zero en `seeds/arje-host.card.json`, reemplazando el agetty de
tty1. Con `supervision: Restart { 2000, 60000 }`, arje-zero lo
respawnea si panica — la resiliencia «PID 2 supervisado» (sshd queda
como rescate remoto). Va en arje-host (boot de hardware real con rootfs
y mesa), NO en arje-prod (seed del initrd, sin GPU).

Además: `seeds/validate.sh` tenía referencias `ente-zero` stale del
rename ente→arje — corregidas a `arje-zero` (paquete + binario). Las
tres seeds validan. Tabla de seeds actualizada en docs/arje-boot.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-22 00:22:19 +00:00
parent 758f61f52a
commit 663fd6e38a
3 changed files with 17 additions and 10 deletions
+5 -5
View File
@@ -3,7 +3,7 @@
# Uso: seeds/validate.sh seeds/arje-prod.card.json
#
# Método: copiamos la Card como `seed.card.json` en un cwd vacío y corremos
# ente-zero en dev-mode 4 s. Si carga, valida, e instancia genesis, la
# arje-zero en dev-mode 4 s. Si carga, valida, e instancia genesis, la
# Card es estructuralmente correcta — los binarios de los hijos pueden
# faltar en el host (vivirán en /usr/sbin del initrd).
@@ -17,11 +17,11 @@ fi
SEED="$(realpath "$1")"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
BIN="$REPO_DIR/target/release/ente-zero"
BIN="$REPO_DIR/target/release/arje-zero"
if [ ! -x "$BIN" ]; then
echo "[validate] compilando ente-zero (release)…"
(cd "$REPO_DIR" && cargo build --quiet --release -p ente-zero)
echo "[validate] compilando arje-zero (release)…"
(cd "$REPO_DIR" && cargo build --quiet --release -p arje-zero)
fi
SCRATCH="$(mktemp -d -t arje-validate.XXXXXX)"
@@ -29,7 +29,7 @@ trap 'rm -rf "$SCRATCH"' EXIT
cp "$SEED" "$SCRATCH/seed.card.json"
cd "$SCRATCH"
LOG="$SCRATCH/ente-zero.log"
LOG="$SCRATCH/arje-zero.log"
# `timeout` retorna 124 al matar el proceso (dev-mode termina solo a los 4 s
# de todas formas). Aceptamos cualquier exit code aquí; lo que importa es lo