🧮 cosmic: trazarle la yupana — el frente existía en el store y el ábaco no lo veía

Faltaba la mitad del método.  SÍ cruzaba incoming-cosmic (lo usé
antes de tocar libdisplay-info, pipewire y glib), pero la campaña no estaba en el
KHIPU: build-state.py sólo conocía --kde y --gnome, y targets.toml no declaraba
perfil.

Y eso no era cosmético. Antes de este commit,  decía
21 dependientes transitivos y dos imágenes; ahora dice 31 y TRES —
escritorio-cosmic entre ellas, con incoming-cosmic=10 en el reparto por cola. O
sea que el próximo que tocara libinput, libudev-zero o mesa habría MEDIDO DE
MENOS, que es exactamente el punto ciego que la metodología existe para cerrar.

Tres piezas:
- build-state.py --cosmic (y su build-state-cosmic.json).
- perfil.escritorio-cosmic en targets.toml, con las raíces que cosmic-session
  levanta MÁS los datos que ningún [deps] alcanza (iconos, xkb, fuentes, bash,
  dbus). Primera medición: 54/61 listo, faltan 7.
- el LATIDO lo regenera, por la misma razón por la que se le agregó GNOME en su
  momento: un frente que el cron no regenera envejece en silencio, y un grafo
  viejo miente con la misma cara que uno fresco.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-03 13:44:18 -04:00
co-authored by Claude Opus 5
parent fbf2498432
commit 570fd3747e
4 changed files with 14229 additions and 4 deletions
+5 -2
View File
@@ -5,7 +5,7 @@
# 1. SIEMBRA (sube): rsync de código + recetas laptop→worker (el laptop es canónico; si autoré
# recetas nuevas —p.ej. openrc— el worker las empieza a moler sin que yo intervenga).
# 2. RECOGE (baja): rsync del store sellado worker→laptop (CAS ⇒ merge seguro, sin conflicto).
# 3. Regenera el GRAFO DE ESTADO (build-state.json + build-state-kde.json) desde el store ya
# 3. Regenera el GRAFO DE ESTADO (build-state{,-kde,-gnome,-cosmic}.json) desde el store ya
# cosechado, y commitea SÓLO esos ficheros firmes. El `git log` de docs/state/ ES el avance
# que el humano ve y sigue (huecos, fallos, qué se selló entre dos ciclos).
#
@@ -134,6 +134,9 @@ if [ -x "$HAMMER" ]; then
# días (gobject-introspection, toda la onda 2). Un grafo viejo miente con la misma cara que uno
# fresco — por eso lo regenera el latido y no la mano.
scripts/build-state.py --gnome >/dev/null 2>&1 && echo " build-state-gnome.json ✓" || echo " ⚠ build-state.py --gnome falló"
# COSMIC (2026-08-03), por la MISMA razón por la que se agregó GNOME arriba: un frente que no
# regenera el latido envejece en silencio, y un grafo viejo miente con la misma cara que uno fresco.
scripts/build-state.py --cosmic >/dev/null 2>&1 && echo " build-state-cosmic.json ✓" || echo " ⚠ build-state.py --cosmic falló"
# Cola DERIVADA del grafo (P4): el orden de masticado por imagen, en ondas topológicas. No lanza
# ningún build — sólo deja escrito qué conviene moler primero, para que la cola deje de ser una
# lista escrita a mano. Barato (lee JSON, no hashea).
@@ -145,7 +148,7 @@ fi
# 4. Commitear SÓLO el estado firme (el avance que el humano sigue). Recetas nuevas que YO autoré se
# commitean aparte, a mano, para no meter autoría a medias en un commit de cron.
if [ "${NO_COMMIT:-}" != "1" ]; then
git add docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/drenaje.json 2>/dev/null || true
git add docs/state/build-state.json docs/state/build-state-kde.json docs/state/build-state-gnome.json docs/state/build-state-cosmic.json docs/state/drenaje.json 2>/dev/null || true
if ! git diff --cached --quiet 2>/dev/null; then
git commit -q -m "estado: cosecha granja $(ts) — avance del árbol KDE" 2>/dev/null \
&& { git push -q origin main 2>/dev/null && echo "==> estado commiteado+pusheado" \