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 188Rust 55Shell 30Markdown 281211 Definiciones

claude-caja: el tope de sesiones era un número suelto que se leía como arquitectura

Preguntado por el operador: «¿qué me limita levantar más de 8 claudes, una
política random o una arquitectura?». Era lo primero, y de una sola línea.

El bucle YA crea la jaula siguiente cuando encuentra ocupada la anterior
(clona la capa, ~1 s, 169 M), así que nada impedía la novena salvo el literal
del guardia. Lo arquitectónico es sólo que el kernel prohíbe dos overlays
sobre el mismo upper — una jaula por Claude —, y de eso ya se encarga el
clonado.

Sube a 10 y, sobre todo, deja escrito CUÁL es el techo real, que es la RAM,
medido en esta caja el 23-sep: 8 sesiones son 2,5 G de RSS (147-493 M cada
una, ~310 M de media) sobre 7,7 G con 8 G de swap y 4,1 ya comidos. Los 4
núcleos no limitan: las sesiones esperan la API, no CPU, y taller ya serializa
los cargo. Disco, 169 M por jaula.

Un número sin su porqué es lo que hace que la próxima vez se lea otra vez como
una ley del sistema.

Sintaxis validada con sh -n; el bucle se simuló con el tope nuevo: elige
claude-sergio-9 con ocho ocupadas, la 10 con nueve, y rechaza en diez. Las
instancias 9 y 10 quedan creadas y probadas (uid 1001, git/ssh/python3/jq/
rsync/bwrap presentes, CLI 2.1.240 arranca, concesiones resuelven).

Assisted-by: claude-code:claude-opus-5

d43f0e3d1c0db1fff01e769c96b02b4d94ccae86 · por Sergio · (hace 29 d) · padre bea665954 · ver el árbol en este commit

Delta semántico

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

1 archivos · +9 −1

diff --git a/scripts/servidor/claude-caja.sh b/scripts/servidor/claude-caja.sh
index 2807afa0..d90ae1d6 100755
--- a/scripts/servidor/claude-caja.sh
+++ b/scripts/servidor/claude-caja.sh
@@ -73,7 +73,15 @@ _libre() { ! pgrep -f "[q]orpa run $1 " >/dev/null 2>&1; }
 _inst="$_base"; _n=2
 while ! _libre "$_inst"; do
   _inst="$_base-$_n"; _n=$((_n+1))
-  [ "$_n" -gt 9 ] && { echo "claude: hay 8 sesiones abiertas de $_base — cerrá alguna" >&2; exit 1; }
+  # ⚠ ESTE NÚMERO ES EL TOPE, y hasta el 2026-09-23 era lo ÚNICO que limitaba cuántos Claudes
+  # hay. Se leía como arquitectura y no lo es: el kernel sólo prohíbe DOS overlays sobre el mismo
+  # `upper` (una jaula = un Claude), y de eso ya se encarga el bucle clonando la capa siguiente.
+  # El techo real es la RAM, MEDIDO acá el 23-sep: 8 sesiones = 2,5 G de RSS (147–493 M cada una,
+  # ~310 M de media) sobre 7,7 G con 8 G de swap y 4,1 ya comidos. Los 4 núcleos NO limitan —las
+  # sesiones esperan la API, no CPU, y `taller` ya serializa los `cargo`—. Disco: 169 M por jaula.
+  # Subirlo es cambiar los dos números de esta línea; pasado ~14 empieza a jugarse con el OOM, que
+  # es el modo de falla documentado (INFORME-CAIDA-2026-08-17: la caída fue con ocho adentro).
+  [ "$_n" -gt 11 ] && { echo "claude: hay 10 sesiones abiertas de $_base — cerrá alguna" >&2; exit 1; }
 done
 if [ ! -d "$BASEDIR/$_inst" ]; then
   echo "claude: abro una sesión más ($_inst) — clonando la capa, ~1 s" >&2