tawasuyu

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 1411Shell 141Markdown 84Rust 832898 Definiciones

gnome onda-1: jubilar la cola entera — molia para nadie

Cierra la jubilacion empezada con gnome-desktop. Las 5 recetas que quedaban:

- glib, glib-introspected, gobject-introspection, py3-setuptools: byte a byte
  identicas a las de incoming-gnome Y con el MISMO ArtifactHash, o sea que
  sellaban en la misma direccion y entraban por cache-hit. Coste de build cero;
  coste real: un segundo sitio donde editar, que se separa en silencio.
- gsettings-desktop-schemas: la unica distinta, y es la version ANTERIOR al
  2026-07-28 (introspection=false + link=static). La vigente lo activo porque el
  gir de Meta de mutter incluye GDesktopEnums-3.0.gir, que sale de ahi, y sin el
  el g-ir-scanner corta en el ultimo target de mutter (721/722).

Lo caro no era el tiempo sino el NOMBRE: el gsettings viejo competia con el
bueno, dos artefactos homonimos con hash distinto en el store. Podado el
huerfano (0fb1703d, 155 KiB exclusivos) y anotado en el ledger anti-churn; los
otros cuatro artefactos siguen vigentes porque los produce incoming-gnome.

Y al jubilar gnome-desktop las dos hojas de la cola se habian quedado sin
consumidor: la cola se alimentaba a si misma y terminaba en el aire.

Sale tambien de QUEUES en farm-worker-loop.sh, por la simetrica de la regla que
ese fichero ya documenta dos veces: una cola ausente de la lista no da error,
da silencio — y una cola retirada que sigue en la lista, tambien.

Gate --check OK, grafo CIERRA, escritorio-gnome sigue 119/119, corpus 786/787.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LykB7vw38b4Ck1Zij15RQ4

cf42cd9049e6702f7dd1c294b7ac44d4cf7bc3a4 · por Sergio · (hace 1 mes) · padre 78fc56b26 · ver el árbol en este commit

Delta semántico

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

11 archivos · +57 −230

diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json
index a217d367..ded1c07d 100644
--- a/docs/state/build-state-cosmic.json
+++ b/docs/state/build-state-cosmic.json
@@ -890,7 +890,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 22
+   "dependientes_total": 21
   },
   "blackbox_exporter": {
    "iname": "blackbox_exporter",
@@ -4322,7 +4322,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 20
+   "dependientes_total": 19
   },
   "flyctl": {
    "iname": "flyctl",
@@ -8497,7 +8497,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 114
+   "dependientes_total": 110
   },
   "libffi-shared": {
    "iname": "libffi-shared",
@@ -9790,7 +9790,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 132
+   "dependientes_total": 128
   },
   "micro": {
    "iname": "micro",
@@ -11094,7 +11094,7 @@
     "escritorio-kde",
     "escritorio-sway"
    ],
-   "dependientes_total": 90
+   "dependientes_total": 86
   },
   "pcre2-shared": {
    "iname": "pcre2-shared",
@@ -11338,7 +11338,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 398
+   "dependientes_total": 394
   },
   "plow": {
    "iname": "plow",
@@ -11707,7 +11707,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 301
+   "dependientes_total": 297
   },
   "qrcp": {
    "iname": "qrcp",
@@ -12262,7 +12262,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 266
+   "dependientes_total": 262
   },
   "sassc": {
    "iname": "sassc",
@@ -15098,7 +15098,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 108
+   "dependientes_total": 104
   },
   "zlib-ng": {
    "iname": "zlib-ng",
diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json
index 22b9d83b..e36afef1 100644
--- a/docs/state/build-state-gnome.json
+++ b/docs/state/build-state-gnome.json
@@ -979,7 +979,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 22
+   "dependientes_total": 21
   },
   "blackbox_exporter": {
    "iname": "blackbox_exporter",
@@ -4058,7 +4058,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 20
+   "dependientes_total": 19
   },
   "flyctl": {
    "iname": "flyctl",
@@ -8903,7 +8903,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 114
+   "dependientes_total": 110
   },
   "libffi-shared": {
    "iname": "libffi-shared",
@@ -10568,7 +10568,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 132
+   "dependientes_total": 128
   },
   "micro": {
    "iname": "micro",
@@ -12015,7 +12015,7 @@
     "escritorio-kde",
     "escritorio-sway"
    ],
-   "dependientes_total": 90
+   "dependientes_total": 86
   },
   "peco": {
    "iname": "peco",
@@ -12240,7 +12240,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 398
+   "dependientes_total": 394
   },
   "plow": {
    "iname": "plow",
@@ -12679,7 +12679,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 301
+   "dependientes_total": 297
   },
   "qrcp": {
    "iname": "qrcp",
@@ -13234,7 +13234,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 266
+   "dependientes_total": 262
   },
   "sassc": {
    "iname": "sassc",
@@ -16219,7 +16219,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 108
+   "dependientes_total": 104
   },
   "zlib-ng": {
    "iname": "zlib-ng",
diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json
index 53d1ff21..3b406a3f 100644
--- a/docs/state/build-state-kde.json
+++ b/docs/state/build-state-kde.json
@@ -1005,7 +1005,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 22
+   "dependientes_total": 21
   },
   "blackbox_exporter": {
    "iname": "blackbox_exporter",
@@ -4289,7 +4289,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 20
+   "dependientes_total": 19
   },
   "flyctl": {
    "iname": "flyctl",
@@ -12213,7 +12213,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 114
+   "dependientes_total": 110
   },
   "libffi-shared": {
    "iname": "libffi-shared",
@@ -13925,7 +13925,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 132
+   "dependientes_total": 128
   },
   "micro": {
    "iname": "micro",
@@ -15464,7 +15464,7 @@
     "escritorio-kde",
     "escritorio-sway"
    ],
-   "dependientes_total": 90
+   "dependientes_total": 86
   },
   "pcre2-shared": {
    "iname": "pcre2-shared",
@@ -15768,7 +15768,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 398
+   "dependientes_total": 394
   },
   "plasma-activities": {
    "iname": "plasma-activities",
@@ -17074,7 +17074,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 301
+   "dependientes_total": 297
   },
   "qcoro": {
    "iname": "qcoro",
@@ -18190,7 +18190,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 266
+   "dependientes_total": 262
   },
   "sassc": {
    "iname": "sassc",
@@ -21624,7 +21624,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 108
+   "dependientes_total": 104
   },
   "zlib-ng": {
    "iname": "zlib-ng",
diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json
index 755cf84f..2365a4b3 100644
--- a/docs/state/build-state-wlr.json
+++ b/docs/state/build-state-wlr.json
@@ -871,7 +871,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 22
+   "dependientes_total": 21
   },
   "blackbox_exporter": {
    "iname": "blackbox_exporter",
@@ -3814,7 +3814,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 20
+   "dependientes_total": 19
   },
   "flyctl": {
    "iname": "flyctl",
@@ -7928,7 +7928,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 114
+   "dependientes_total": 110
   },
   "libffi-shared": {
    "iname": "libffi-shared",
@@ -9156,7 +9156,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 132
+   "dependientes_total": 128
   },
   "micro": {
    "iname": "micro",
@@ -10421,7 +10421,7 @@
     "escritorio-kde",
     "escritorio-sway"
    ],
-   "dependientes_total": 90
+   "dependientes_total": 86
   },
   "peco": {
    "iname": "peco",
@@ -10613,7 +10613,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 398
+   "dependientes_total": 394
   },
   "plow": {
    "iname": "plow",
@@ -10912,7 +10912,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 301
+   "dependientes_total": 297
   },
   "qrcp": {
    "iname": "qrcp",
@@ -11467,7 +11467,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 266
+   "dependientes_total": 262
   },
   "sassc": {
    "iname": "sassc",
@@ -14515,7 +14515,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 108
+   "dependientes_total": 104
   },
   "zlib-ng": {
    "iname": "zlib-ng",
diff --git a/docs/state/build-state.json b/docs/state/build-state.json
index cae4ce5f..e8f1b988 100644
--- a/docs/state/build-state.json
+++ b/docs/state/build-state.json
@@ -863,7 +863,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 22
+   "dependientes_total": 21
   },
   "blackbox_exporter": {
    "iname": "blackbox_exporter",
@@ -3789,7 +3789,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 20
+   "dependientes_total": 19
   },
   "flyctl": {
    "iname": "flyctl",
@@ -7790,7 +7790,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 114
+   "dependientes_total": 110
   },
   "libffi-shared": {
    "iname": "libffi-shared",
@@ -9018,7 +9018,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 132
+   "dependientes_total": 128
   },
   "micro": {
    "iname": "micro",
@@ -10283,7 +10283,7 @@
     "escritorio-kde",
     "escritorio-sway"
    ],
-   "dependientes_total": 90
+   "dependientes_total": 86
   },
   "peco": {
    "iname": "peco",
@@ -10475,7 +10475,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 398
+   "dependientes_total": 394
   },
   "plow": {
    "iname": "plow",
@@ -10774,7 +10774,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 301
+   "dependientes_total": 297
   },
   "qrcp": {
    "iname": "qrcp",
@@ -11329,7 +11329,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 266
+   "dependientes_total": 262
   },
   "sassc": {
    "iname": "sassc",
@@ -14049,7 +14049,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 108
+   "dependientes_total": 104
   },
   "zlib-ng": {
    "iname": "zlib-ng",
diff --git a/recipes/incoming-gnome-onda1/glib-introspected.toml b/recipes/incoming-gnome-onda1/glib-introspected.toml
deleted file mode 100644
index 361f689c..00000000
--- a/recipes/incoming-gnome-onda1/glib-introspected.toml
+++ /dev/null
@@ -1,28 +0,0 @@
-# glib 2.88.1 — GATE TEST de la isla: glib con introspection=ENABLED (produce GLib/GObject/Gio.typelib
-# usando g-ir-scanner+compiler sobre GLib misma). Es el test definitivo del keystone: si sella,
-# g-ir-compiler sirve para los typelibs CORE bajo musl (el SIGSEGV era sólo los .gir X11); si revienta,
-# el tool está roto. Rompe el ciclo glib↔g-i: deps la g-i YA sellada (que usa la glib-stage1 sin
-# introspección, también sellada) ⇒ glib-introspected → g-i → glib(stage1), sin ciclo.
-# Ver [[gnome-introspection-dinamica]].
-name    = "glib-introspected"
-version = "2.88.1"
-license = "LGPL-2.1-or-later"
-
-[source]
-tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz"
-sha256  = "51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-
-[build.phases]
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=enabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false"
-compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
-install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
-
-# glib (stage1, sin introspección) hidrata libglib-2.0.so.0 para que g-ir-scanner (que _giscanner.so
-# dlopea) CORRA al configure. hammer hidrata deps DIRECTAS, no transitivas de g-i ⇒ hay que declararla.
-[deps]
-build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "gobject-introspection", "glib", "libffi", "pcre2", "zlib"]
diff --git a/recipes/incoming-gnome-onda1/glib.toml b/recipes/incoming-gnome-onda1/glib.toml
deleted file mode 100644
index dfff09b4..00000000
--- a/recipes/incoming-gnome-onda1/glib.toml
+++ /dev/null
@@ -1,44 +0,0 @@
-# glib 2.88.1 — VARIANTE DINÁMICA de la ISLA GNOME (SHADOW de recipes/glib.toml estática).
-#
-# Por qué existe: el shell de GNOME (gjs/gnome-shell) usa GObject-introspection en RUNTIME — un
-# typelib mapea cada tipo a una biblioteca COMPARTIDA que gjs `dlopen`ea. g-ir-scanner exige lo mismo
-# al BUILDear: `can't resolve libraries to shared libraries: glib-2.0` si glib es sólo `.a`. Ergo la
-# isla GNOME necesita glib como `.so` real (libglib/gobject/gio/gmodule-2.0.so.0 con SONAME).
-#
-# Por qué NO tocar recipes/glib.toml: la estática la consume el árbol entero (KDE, corpus). Cambiarla
-# re-hashearía cientos de sellados. En su lugar esta variante vive en la cola GNOME y, por el orden
-# del resolver (hermano incoming-gnome/ → padre recipes/), SOMBREA la corpus SÓLO para las recetas
-# GNOME; el resto del árbol sigue con la estática. Ver [[gnome-introspection-dinamica]].
-#
-# Deps internas (libffi/pcre2/zlib) estáticas: el .so las embebe (self-contained para ésas).
-# Runtime: el rootfs de la imagen GNOME necesitará el loader musl (ld-musl-x86_64.so.1) — paso de
-# ensamblado de imagen, no del build (el sandbox ya lo tiene).
-#
-# default_library=BOTH (no shared): la isla necesita AMBOS. El `.so` (con SONAME) es lo que
-# g-ir-scanner resuelve para la introspección y lo que gjs dlopea en runtime; el `.a` es para el
-# link ESTÁTICO INTERNO de los consumidores (el propio g-i compila binarios que hacen `-static
-# -lglib-2.0` — sin el `.a` zig falla "unable to find static system library glib-2.0"). Con ambos,
-# el consumidor estático encuentra el `.a` y el scanner encuentra el `.so`.
-name    = "glib"
-version = "2.88.1"
-license = "LGPL-2.1-or-later"
-
-[source]
-tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz"
-sha256  = "51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-
-[build.phases]
-# default_library=both ⇒ libglib-2.0.{a,so.0} &co. introspection=disabled a propósito: los typelibs
-# de GLib/GObject los produce gobject-introspection escaneando este .so (externo), no glib a sí misma
-# (evita el ciclo glib↔g-i en el bootstrap).
-configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=disabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false"
-compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
-install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
-
-[deps]
-build = ["meson", "samurai", "python3", "pkgconf", "libffi", "pcre2", "zlib"]
diff --git a/recipes/incoming-gnome-onda1/gobject-introspection.toml b/recipes/incoming-gnome-onda1/gobject-introspection.toml
deleted file mode 100644
index 4f2a091c..00000000
--- a/recipes/incoming-gnome-onda1/gobject-introspection.toml
+++ /dev/null
@@ -1,47 +0,0 @@
-# gobject-introspection 1.84.0 — el escáner de metadata de GNOME (g-ir-scanner + typelibs).
-# Es dep de casi toda lib GNOME (gtk4/libadwaita/etc. lo declaran cuando -Dintrospection=enabled).
-# meson static, backend feature-minimal: doctool/gtk_doc/tests off, PERO build_introspection_data=true
-# (los .gir/.typelib SON su razón de ser).
-#
-# BORRADOR PARA EL MAPA — dificultad conocida: g-ir-scanner NO es puro metadata. Para cada lib
-# COMPILA y EJECUTA un pequeño binario "dumper" enlazado contra el target para volcar los GTypes en
-# runtime. En un lab cross/hermetico static-musl esto es el palo largo del stack GNOME:
-#   1) ejecutar un binario del target dentro del sandbox (aquí target==host x86_64-linux-musl, así que
-#      NO hay emulación — a favor nuestro; el escenario cross real necesitaría qemu/exe_wrapper).
-#   2) el dumper enlaza estático contra glib+libffi; el scanner invoca al compilador (CC/zig-cc) y al
-#      linker en runtime ⇒ necesita el toolchain + el cierre .pc COMPLETO visible en PKG_CONFIG_PATH.
-#   3) suele pelear con -static / musl (símbolos de introspección, gi-dump). PROBABLEMENTE NO selle a
-#      la primera — dejar como frontera medida, no como sellado asumido.
-name    = "gobject-introspection"
-version = "1.84.0"
-license = "LGPL-2.0-or-later AND GPL-2.0-or-later"
-
-[source]
-tarball = "https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz"
-sha256  = "945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-# ISLA DINÁMICA: g-i es parte de la isla GNOME y linkea la glib dinámica. link=dynamic para que sus
-# binarios internos (g-ir-compiler, dumper) tomen libglib-2.0.so CONSISTENTEMENTE — no mezclar el .a
-# (estático) con la glib que ya trae libgirepository-2.0.so (dinámica): esa mezcla da DOS copias del
-# estado de GType ⇒ g-ir-compiler SIGSEGV. Ver [[gnome-introspection-dinamica]].
-link     = "dynamic"
-
-[build.phases]
-# build_introspection_data=FALSE: g-i 1.84 sólo genera aquí los typelibs EXTERNOS de X11/cairo
-# (cairo/xlib/xft/xrandr/xfixes/win32) — que NO queremos (Wayland-only) y sobre los que g-ir-compiler
-# hace SIGSEGV bajo musl. Los typelibs CORE (GLib/GObject/Gio) los produce glib (absorbió girepository).
-# g-i aquí = las TOOLS (g-ir-scanner/compiler) que usan gtk4 &co. default_library=both (isla dinámica).
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=both -Ddoctool=disabled -Dgtk_doc=false -Dtests=false -Dbuild_introspection_data=false -Dcairo=disabled -Dc_args=-Wno-error=date-time"
-compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
-install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
-
-[deps]
-# glib + su cierre .pc estático (pkgconf resuelve Requires.private: pcre2, zlib, libffi).
-# flex/bison: el parser de anotaciones del scanner. libffi: además lo enlaza el dumper.
-# py3-setuptools: meson.build:29 exige `python3 (setuptools)` importable (instala giscanner como
-# paquete python) — el python3 del rootfs NO trae setuptools; se lo damos como módulo sellado.
-build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "flex", "bison", "glib", "libffi", "pcre2", "zlib"]
-# FRONTERA: cairo omitida a propósito (-Dcairo=disabled) — feature-minimal, evita el typelib Cairo-1.0.
diff --git a/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml b/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml
deleted file mode 100644
index 76df8499..00000000
--- a/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# gsettings-desktop-schemas 48.0 — los schemas GSettings compartidos de GNOME (org.gnome.desktop.*):
-# fondo, interface, wm, a11y, sound… Casi todo el escritorio los lee en runtime. Receta LIVIANA:
-# compila XML de schemas + una libcita de enums; meson static. sha256 REAL de curl|sha256sum.
-#
-# Feature-minimal: introspection=false (el typelib no lo exige el runtime de schemas; si mutter/gjs
-# lo pidieran vía typelib, se re-activa). Sin docs/tests.
-name    = "gsettings-desktop-schemas"
-version = "48.0"
-license = "LGPL-2.1-or-later"
-
-[source]
-tarball = "https://download.gnome.org/sources/gsettings-desktop-schemas/48/gsettings-desktop-schemas-48.0.tar.xz"
-sha256  = "e68f155813bf18f865a8b2c8e9d473588b6ccadcafbb666ab788857c6c2d1bd3"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "static"
-
-[build.phases]
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Dintrospection=false -Dc_args=-Wno-error=date-time"
-compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
-install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
-
-# glib aporta gio (compila los schemas) + su cierre .pc. gobject-introspection sólo si introspection=true.
-[deps]
-build = ["meson", "samurai", "python3", "pkgconf", "glib", "libffi", "pcre2", "zlib"]
diff --git a/recipes/incoming-gnome-onda1/py3-setuptools.toml b/recipes/incoming-gnome-onda1/py3-setuptools.toml
deleted file mode 100644
index 21ac6f87..00000000
--- a/recipes/incoming-gnome-onda1/py3-setuptools.toml
+++ /dev/null
@@ -1,37 +0,0 @@
-# py3-setuptools 75.8.2 — setuptools como MÓDULO importable de python3, para las recetas cuyo
-# meson.build exige `python3 (setuptools)` (gobject-introspection:29, y todo el stack GUI-python
-# que instala giscanner/entry-points). Python PURO: no se compila, se COPIA a site-packages.
-#
-# Mismo patrón que meson.toml: hammer evita el camino wheel/pip/gpep517 de Alpine (recetas que no
-# tiene); la fuente ES el árbol Python sellado y se instala copiando los paquetes tal cual. Hermético
-# (sin pip ni red). El `.pth` de precedencia de distutils replica lo que hace `pip install setuptools`
-# para que `_distutils_hack` se active y setuptools gane sobre el distutils del stdlib.
-name    = "py3-setuptools"
-version = "75.8.2"
-license = "MIT"
-
-[source]
-tarball = "https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-75.8.2.tar.gz"
-sha256  = "4880473a969e5f23f2a2be3646b2dfd84af9028716d398e46192f84bc36900d2"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "static"
-
-[build.phases]
-# Python puro: nada que compilar.
-compile = "true"
-install = '''
-set -e
-SP=/out/usr/lib/python3.12/site-packages
-mkdir -p "$SP"
-cp -r setuptools pkg_resources _distutils_hack "$SP/"
-# Replica el distutils-precedence.pth de pip: activa el shim que da precedencia a setuptools.
-printf '%s\n' "import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'local') == 'local'; enabled and __import__('_distutils_hack').add_shim();" \
-  > "$SP/distutils-precedence.pth"
-'''
-
-# python3 es dep de RUNTIME (lo importa quien use setuptools como build-dep).
-[deps]
-runtime = ["python3"]
diff --git a/scripts/farm/farm-worker-loop.sh b/scripts/farm/farm-worker-loop.sh
index c024c680..82ba7074 100755
--- a/scripts/farm/farm-worker-loop.sh
+++ b/scripts/farm/farm-worker-loop.sh
@@ -99,9 +99,19 @@ DISK_HIGH="${DISK_HIGH:-82}"
 # de COSMIC — no fallaban, es que nadie las intentaba. Es el mismo modo de fallo que "el corpus no
 # está en las QUEUES del worker": una cola ausente no da error, da silencio.
 # REGLA: crear una cola `recipes/incoming-*` y no añadirla acá es dejarla muerta. Si aparece una
-# nueva, va en esta línea EN EL MISMO COMMIT.
+# nueva, va en esta línea EN EL MISMO COMMIT. Y la simétrica: si una cola se RETIRA, sale de acá en
+# el mismo commit, o el worker muele un glob vacío para siempre sin que nada lo diga.
+#
+# `incoming-gnome-onda1` SE RETIRÓ el 2026-09-01, y el motivo cierra el arco de los dos párrafos de
+# arriba: sus 6 recetas eran 4 duplicados byte a byte de `incoming-gnome` —mismo ArtifactHash, o sea
+# que sellaban en la MISMA dirección y entraban por cache-hit—, más `gnome-desktop` sin
+# `xkeyboard-config` en `[deps]`, más un `gsettings-desktop-schemas` con `introspection=false`, que
+# es la versión ANTERIOR al 2026-07-28 (mutter necesita el `GDesktopEnums-3.0.gir` que sale de ahí).
+# Al jubilar `gnome-desktop` las dos hojas de la cola se quedaron sin consumidor: molía para nadie.
+# ⚠ Lo caro no era el tiempo —todo salía por caché— sino que el `gsettings-desktop-schemas` viejo
+# competía por el NOMBRE con el bueno: dos artefactos homónimos con hash distinto en el store.
 # Orden: las colas con deuda van ANTES de las cerradas (kde 163/163, wlr 129/129 salen por cache-hit).
-QUEUES="${QUEUES:-recipes/incoming recipes/incoming-go recipes/incoming-clib recipes/incoming-gnome-onda1 recipes/incoming-gnome-onda2 recipes/incoming-gnome recipes/incoming-cosmic recipes/incoming-kde recipes/incoming-wlr}"
+QUEUES="${QUEUES:-recipes/incoming recipes/incoming-go recipes/incoming-clib recipes/incoming-gnome-onda2 recipes/incoming-gnome recipes/incoming-cosmic recipes/incoming-kde recipes/incoming-wlr}"
 
 # REBUILD DEL BINARIO AL ARRANCAR (2026-07-18): el hammer horneado en la imagen golden ENVEJECE.
 # Caso real que costó una noche de KDE: la golden del 29-jun traía un hammer sin el fix del overlay