From b653d3955000c7e66729ac15f0078a282ca59a37 Mon Sep 17 00:00:00 2001 From: Sergio Date: Sun, 23 Aug 2026 18:28:20 +0000 Subject: [PATCH] =?UTF-8?q?corpus:=20ORDEN=20se=20puede=20imponer=20desde?= =?UTF-8?q?=20fuera=20=E2=80=94=2017=20recetas=20sin=20reconstruir=20780?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El fichero de orden estaba fijo en la linea 69 y lo regeneraba el bloque python en cada corrida, asi que no habia forma de pasarle una lista concreta. Con el grafo ya corregido quedan 17 recetas que cierran las SEIS imagenes (base, cli, sway, mirada, cosmic, gnome) y ninguna esta bloqueada; correr el corpus entero para llegar a ellas es absurdo. Ahora `ORDEN_IMPUESTO=1 ORDEN=` usa la lista del que llama y hereda gratis lo que hace util a este script: el flock de la regla 1, el vigia de disco de dos sistemas de ficheros y el log por receta. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Xd5DComN9Nu47TBpYMBHBn --- scripts/reconstruir-corpus.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/reconstruir-corpus.sh b/scripts/reconstruir-corpus.sh index 003cacec..1b6ac12b 100755 --- a/scripts/reconstruir-corpus.sh +++ b/scripts/reconstruir-corpus.sh @@ -66,7 +66,15 @@ ts() { date -u +%Y-%m-%dT%H:%M:%SZ; } # staging. Construyendo por orden alfabético, tras un día de máquina no habría NI UNA imagen # completa. Se ordena por objetivo: primero las clausuras de los perfiles de `targets.toml` # (base, cli, escritorio-*), después todo lo demás. Así cada perfil que cierra es utilizable ya. -ORDEN="$ROOT/work/reconstruccion-orden.txt" +# ORDEN se puede IMPONER desde fuera (2026-08-23): `ORDEN=work/faltan-perfiles.txt` corre una lista +# concreta en vez del corpus entero, y hereda gratis el flock, el vigía de disco y el log de acá. +# Nació de tener 17 recetas sueltas —las que cierran las seis imágenes— y ninguna forma de pasarlas +# sin reconstruir 780. Si el fichero ya existe y no está vacío, NO se regenera: la lista del que +# llama manda. Admite tanto rutas `recipes/…/x.toml` como nombres a secas. +ORDEN="${ORDEN:-$ROOT/work/reconstruccion-orden.txt}" +if [ -s "$ORDEN" ] && [ -n "${ORDEN_IMPUESTO:-}" ]; then + echo " orden IMPUESTO desde $ORDEN ($(grep -c . "$ORDEN") entradas) — no regenero" +else python3 - "$ORDEN" <<'PY' import json, os, sys, subprocess # Las raíces salen de `targets.toml` vía su expansor oficial (scripts/targets.py), NO de los nodos @@ -114,6 +122,7 @@ with open(sys.argv[1], "w") as fh: fh.write("\n".join(pri + resto) + "\n") print(f" orden: {len(pri)} de perfil primero, {len(resto)} de catálogo después") PY +fi mapfile -t RECETAS < "$ORDEN" # ── PARTICIÓN ENTRE WORKERS: SHARD=i/N ──────────────────────────────────────────────────────────