Files
takana/scripts/servidor/claude-caja.sh
T
SergioandClaude Opus 5 d6ba65e23c el lanzador arranca EN el repo: sin ese cd, el agente empieza sin memoria
La memoria se indexa por ruta de trabajo. `qorpa run` deja el shell en `/`, así que las primeras
pruebas usaron el proyecto `-` y el agente arrancaba en blanco aunque sus 163 ficheros estuvieran en
disco. Con `cd /opt/takana` usa `-opt-takana`, que es donde se renombró la memoria traída de gioser
(allá el repo era /mnt/vvv/takana).

Comprobado en la caja, con dos preguntas que sólo puede contestar leyendo:

  ¿el logo?    → «martillo 7×7, cuatro colores exactos» (está en su memoria)
  ¿la regla 1? → «todo takana build va envuelto en flock, y con -o», con el matiz del lock heredado

O sea: el agente de la caja arranca sabiendo lo que sabe éste.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 17:36:41 +00:00

21 lines
1.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
# claude — entrar al agente en esta caja. El CLI es glibc y la caja es musl: corre enjaulado
# (ADR 0015), con el repo, el store, el lab, la memoria y las llaves concedidos y nada más.
#
# ⚠ LOS BUILDS NO CORREN DENTRO DE LA JAULA. `takana build` levanta su propio bwrap y ahí falla con
# «Can't mount proc on /proc» aunque la instancia declare `nesting = true` (un `bwrap --proc /proc`
# a mano SÍ funciona adentro: lo que falla es el userns anidado que arma el sandbox del build).
# El camino que sí anda —y el que el agente debe usar— es pedírselo al ANFITRIÓN por ssh:
#
# ssh -p 22022 -i /root/.ssh/github5 root@127.0.0.1 \
# 'cd /opt/takana && flock -o work/.farm-build.lock takana --store /store build <receta>'
#
# Comprobado el 2026-09-17: así se selló `sof-firmware` desde dentro de la jaula.
# ⚠ EL `cd` NO ES COMODIDAD: la memoria del agente se indexa POR RUTA DE TRABAJO. Arrancando desde
# `/` —que es donde `qorpa run` deja el shell— la sesión usa el proyecto `-` y el agente **empieza
# sin saber nada**, aunque sus 163 ficheros de memoria estén en disco. Desde `/opt/takana` usa
# `-opt-takana`, que es donde se renombró la memoria que vino de gioser (allá el repo era
# `/mnt/vvv/takana`). Comprobado: preguntado por el logo, contesta «martillo 7×7, cuatro colores
# exactos», que es exactamente lo que dice su memoria.
exec takana qorpa run claude -- sh -c '''cd /opt/takana && exec env HOME=/root TERM="${TERM:-xterm-256color}" /work/claude-cli/2.1.240 "$@"''' -- "$@"