los sueltos, desglosados: 2,7 G de los que lo irreemplazable son 27 guiones de 1 M

El usuario pidió el detalle de los binarios que ningún paquete provee, que es lo que la mudanza no
puede reconstruir. Medido en los tres directorios (`/usr/local/bin`, `~/.local/bin`,
`/root/.local/bin`):

  tawasuyu            57 ficheros  1003 M   salida del monorepo ⇒ se reconstruye
  terceros            10 ficheros   841 M   kiro-cli 571 M, kcl, qdrant, listmonk… ⇒ se re-bajan
  respaldo/duplicado  21 ficheros   876 M   /root/.local/bin es una COPIA de kiro-cli + el CLI claude
  guiones             27 ficheros    <1 M   git-deploy, webhook-deploy.py, mirada-session… ⇒ NADA los provee

Lo caro no es lo valioso: 1,8 G de los 2,7 son reconstruibles o duplicados, y lo único que no está
en ningún repo ni paquete son 27 guiones que suman menos de un megabyte. Y los 572 M que el censo no
veía (§6.34) eran justamente la copia duplicada de kiro-cli.

De `.claude` decide mi criterio, por pedido: de 6,8 G viajan 15 M — `projects/*/memory` (6,2 M),
`settings.json`, `plugins` e `history.jsonl`. `jobs` (5,3 G), `downloads`, `archivo-sesiones` y los
caches no viajan; los transcripts crudos (973 M) van al Storage Box, no a la caja: no hacen falta
para funcionar, la memoria es su destilado.

⚠ Y la trampa que haría inútil todo eso: la memoria se indexa POR RUTA (`-mnt-vvv-takana`), y en la
caja el repo está en `/opt/takana` — copiarla tal cual deja 163 ficheros que NO se encuentran, sin
que nada falle.

⚠ Segundo hallazgo: la caja no tiene usuario `sergio` (sólo root, sshd, gitea, proxy) y shuma corre
sin privilegio en gioser. La tarjeta que lo declare tiene que crear la cuenta, y el payload Native
de arje no tiene campo de usuario.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sergio
2026-09-16 15:22:50 +00:00
co-authored by Claude Opus 5
parent fd96229ce2
commit aa2752fa7b
+58
View File
@@ -2044,6 +2044,64 @@ va a inventar**: son las herramientas propias del usuario, no servicios de un ca
**datos** tampoco se recomiendan solos (§3): `/home` son 25 G que incluyen 6,8 G de `.claude` y
1,3 G de binarios sueltos.
### 6.35 🧳 Los binarios sueltos, desglosados — y qué de `.claude` viaja *(2026-09-16)*
Decisión del usuario sobre el §6.34: **shuma se construye desde tawasuyu** (ya está encolado:
`recipes/incoming/shuma-{gateway,daemon}.toml`), **los daemons de tawasuyu viven todos**, y de
`.claude` decide el criterio de quien lo usa. Falta el detalle de los sueltos, que es esto.
#### Son 2,7 G en tres directorios, y casi nada de eso es irreemplazable
| clase | cuánto | qué es | se reconstruye |
|---|---|---|---|
| **tawasuyu** | 57 ficheros · **1003 M** | `pata-llimphi` 105 M, `nahual-shell-llimphi` 98 M, `shuma-shell-llimphi` 76 M, los 14 `mirada-*`, `pata-*`, `shuma-*`, `sandokan-*`, `willay-*`, `pacha`, `tejido`, `tupu`, `matilda`, `thasnuna`… | **sí**: son salida del monorepo, que ya vive en el gitea de la caja |
| **terceros** | 10 ficheros · **841 M** | `kiro-cli*` 571 M (tres binarios), `kcl` 95 M, `qdrant` 91 M (muere, §6.30), `gitea-runner` 21 M, `act_runner` 21 M (muere), `listmonk` 19 M, `hcloud` 18 M, `goaccess` 3,4 M | no, pero **se vuelven a bajar de su origen** |
| **respaldo / duplicado** | 21 ficheros · **876 M** | `/root/.local/bin` es **una copia entera de `kiro-cli*`** (571 M) más el CLI de `claude` (219 M); el resto son `.respaldo-FECHA`, `.previo` y `.bak` | no hace falta |
| **guiones** | 27 ficheros · **< 1 M** | `git-deploy`, `webhook-deploy.py`, `update-squid-allowed-ips.sh`, `mirada-session*`, `huellita-aviso`… | **NO** ← lo único de verdad frágil |
⇒ **lo caro no es lo valioso**. De los 2,7 G, 1,8 G son reconstruibles o duplicados, y lo que no
está en ningún repo ni en ningún paquete son **27 guiones que suman menos de un megabyte** — el
pegamento que nadie recuerda hasta que falta. Van al plan como una sola entrada, y con nombre.
Y los **572 M de `/root/.local/bin`** que el censo no veía (§6.34) resultaron ser exactamente eso:
la copia de `kiro-cli*` que ya está en el home de `sergio`. La lección no cambia —un censo que dice
«no hay nada» de lo que no pudo mirar es peor que uno que falla—, pero el contenido, esta vez, era
duplicado.
#### `.claude`: 6,8 G en disco, **15 M es lo que hace falta para seguir funcionando igual**
Criterio, porque es lo que me deja trabajar allá como acá:
| viaja | qué | tamaño |
|---|---|---|
| ✅ | `projects/*/memory/` de los 18 proyectos — la memoria destilada | **6,2 M** |
| ✅ | `settings.json`, `plugins/`, `history.jsonl` | ~8,6 M |
| ⛔ | `jobs/` (5,3 G), `downloads/` (228 M), `archivo-sesiones/` (286 M), `file-history/`, `shell-snapshots/`, `cache/`, `paste-cache/` | 6,1 G |
| ⚠ | `projects/*/*.jsonl` — los transcripts crudos (973 M) | ver abajo |
Los **transcripts no hacen falta para funcionar**: la memoria es su destilado y es lo que se lee al
arrancar una sesión. Lo que se pierde sin ellos es `--resume` de una sesión vieja y la posibilidad
de releer una conversación que nadie resumió. Por eso no van a la caja —que tiene 42 G libres en
`/work` y los quiere para el store— sino al **Storage Box del respaldo**, que es donde vive lo que
se guarda por si acaso. La memoria, en cambio, viaja con la máquina.
#### ⚠ Y una trampa de ruta que haría todo esto inútil
**La memoria se indexa POR RUTA**: el directorio se llama `-mnt-vvv-takana` porque el repo vive en
`/mnt/vvv/takana`. En la caja el repo está en **`/opt/takana`** ⇒ copiar `memory/` tal cual deja los
163 ficheros en disco y **ninguno se encuentra**, sin que nada falle. Las dos salidas son renombrar
el directorio a la ruta de destino (`-opt-takana`) o darle al repo la misma ruta que acá. Se elige
al copiar, no después.
#### 🕳️ La caja no tiene usuario `sergio`
`/etc/passwd` de `2.29.29.217`: `root`, `sshd`, `gitea`, `proxy`. Nada más. En gioser,
`shuma-daemon` corre como `sergio` —y `shuma-gateway` también—, así que la tarjeta de arje que los
declare tiene que **crear la cuenta primero**; y el payload `Native` de arje **no tiene campo de
usuario** (SDD 29 §4.0 quinquies), así que declararlos sin más los pone a correr como root. Es la
misma advertencia que ya lleva `recipes/incoming/shuma-daemon.toml` en su cabecera, escrita donde se
va a leer.
## 7. Reusar los scripts que ya existen, y no escribir de nuevo
Pedido explícito del usuario. El inventario de lo que ya hace el trabajo: