gioser

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 1389Shell 137Markdown 80Rust 802602 Definitions

sombras: CERO — promover las 6 compartidas al corpus y barrer sus 16 copias

Las 6 que quedaban (fuse3, hwdata, icu4c, libdisplay-info, libelogind, lua) no tenían copia en
el corpus, así que borrar una habría roto su cola: la resolución es sibling-first y después el
catálogo PADRE, nunca una cola hermana. Se promueve una y se barren las 16.

Las 16 eran byte a byte IDÉNTICAS entre sí, con el mismo ArtifactHash — medido con 'hammer hash',
no deducido del nombre. Cada una la comparten entre 2 y 4 imágenes, que es exactamente el
criterio que dejó escrito xkeyboard-config al promoverse: lo que comparten varias imágenes tiene
que vivir en el corpus o no lo alcanzan.

A diferencia de aquella, acá las copias SÍ se barren en el mismo movimiento: sin copia en el
corpus no había dónde caer, y dejarlas sería mantener hasta 4 ficheros que son el mismo hash.

Verificado con la huella de las 1167 recetas antes y después:
  ficheros de receta   1167 → 1157   (16 borradas, 6 promovidas)
  hashes supervivientes  ninguno se movió ⇒ CERO rebuilds
  los cinco grafos       deuda 0, huérfanas [], sellados == recetas
  static-audit           MIENTEN 0 de 690
  duplicados             SOMBRAS REDUNDANTES: 0   ← de 14

⚠ Y una lectura que casi publico mal: mi primera comparación de hashes dijo 'CAMBIÓ ✗' en las
seis. Era el grep de la comparación, que no casaba y dejaba el valor 'antes' vacío — los hashes
nuevos eran idénticos a los medidos minutos antes. Un instrumento roto que grita es tan malo
como uno mudo.

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

ca2c164512f919bbfd4764e8c7a90c1a253249a2 · by Sergio · (1 month ago) · parent a4a462b75 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

30 files · +846 −1042

diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json
index 00e406e4..3df1f6f2 100644
--- a/docs/state/build-state-cosmic.json
+++ b/docs/state/build-state-cosmic.json
@@ -1,14 +1,14 @@
 {
  "schema": "hammer-build-state/1",
  "totals": {
-  "recipes": 891,
-  "nodes": 893,
-  "sealed": 891,
+  "recipes": 892,
+  "nodes": 894,
+  "sealed": 892,
   "ajeno": 2
  },
  "by_class": {
   "ajeno": 2,
-  "c": 229,
+  "c": 230,
   "go": 362,
   "gui": 41,
   "kernel": 6,
@@ -17,11 +17,11 @@
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 858,
+   "sealed": 864,
    "ajeno": 2
   },
   "incoming-cosmic": {
-   "sealed": 33
+   "sealed": 28
   }
  },
  "by_profile": {
@@ -5246,16 +5246,17 @@
     "samurai"
    ],
    "cls": "c",
-   "queue": "incoming-cosmic",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:09462465c16e9984a1d9cff16f2fb4d45078ccfb832afd75c2a02e657b38d677",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-cosmic"
+    "escritorio-cosmic",
+    "escritorio-gnome"
    ],
-   "dependientes_total": 1
+   "dependientes_total": 2
   },
   "fx": {
    "iname": "fx",
@@ -7907,16 +7908,19 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-cosmic",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:6fd71a1f1df0cd4d9752f087611468cfc0be6c998381dda2b8816231ab83456e",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-cosmic"
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
    ],
-   "dependientes_total": 1
+   "dependientes_total": 8
   },
   "hyperfine": {
    "iname": "hyperfine",
@@ -7937,6 +7941,28 @@
    ],
    "dependientes_total": 0
   },
+  "icu4c": {
+   "iname": "icu4c",
+   "version": "77.1",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "pkgconf",
+    "python3"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:92ef211974cea96f559df9784e108c07b155f80932d12d1ef4d7e3cc1363b074",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-gnome",
+    "escritorio-kde"
+   ],
+   "dependientes_total": 28
+  },
   "igrep": {
    "iname": "igrep",
    "version": "1.3.0",
@@ -9552,16 +9578,19 @@
     "samurai"
    ],
    "cls": "c",
-   "queue": "incoming-cosmic",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:5db3cfd58823ffac3df3a31feafaf87efbad349228747b5ae00ce48b3cfe42c8",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-cosmic"
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
    ],
-   "dependientes_total": 1
+   "dependientes_total": 6
   },
   "libdrm": {
    "iname": "libdrm",
@@ -9597,16 +9626,17 @@
    "compiler": "zig-cc",
    "deps": [],
    "cls": "rust",
-   "queue": "incoming-cosmic",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:285dda6baea988e43dca6e52348be73c302177313c9fcecf9bc7d83eb8682368",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-cosmic"
+    "escritorio-cosmic",
+    "escritorio-gnome"
    ],
-   "dependientes_total": 1
+   "dependientes_total": 6
   },
   "libepoxy": {
    "iname": "libepoxy",
@@ -10724,7 +10754,7 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-cosmic",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:9f3e9ea083e46629af1f7eaf2cd92b8129cc8909d3f552d30aa6ad8708b72016",
    "state": "sealed",
@@ -10733,7 +10763,7 @@
    "perfiles": [
     "escritorio-cosmic"
    ],
-   "dependientes_total": 1
+   "dependientes_total": 2
   },
   "lua5.2": {
    "iname": "lua5.2",
@@ -10898,7 +10928,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 119
+   "dependientes_total": 118
   },
   "mako": {
    "iname": "mako",
@@ -11316,7 +11346,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 125
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -13174,7 +13204,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 396
+   "dependientes_total": 387
   },
   "plow": {
    "iname": "plow",
@@ -13643,7 +13673,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 312
+   "dependientes_total": 307
   },
   "qrcp": {
    "iname": "qrcp",
@@ -14258,7 +14288,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 267
+   "dependientes_total": 263
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json
index de2825bb..9b1efa08 100644
--- a/docs/state/build-state-gnome.json
+++ b/docs/state/build-state-gnome.json
@@ -17,11 +17,11 @@
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 849,
+   "sealed": 855,
    "ajeno": 2
   },
   "incoming-gnome": {
-   "sealed": 69
+   "sealed": 63
   }
  },
  "by_profile": {
@@ -46,7 +46,7 @@
    "sealed": 41
   }
  },
- "sin_perfil": 662,
+ "sin_perfil": 661,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -4956,16 +4956,17 @@
     "samurai"
    ],
    "cls": "c",
-   "queue": "incoming-gnome",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:09462465c16e9984a1d9cff16f2fb4d45078ccfb832afd75c2a02e657b38d677",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
+    "escritorio-cosmic",
     "escritorio-gnome"
    ],
-   "dependientes_total": 1
+   "dependientes_total": 2
   },
   "fx": {
    "iname": "fx",
@@ -8096,16 +8097,19 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-gnome",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:6fd71a1f1df0cd4d9752f087611468cfc0be6c998381dda2b8816231ab83456e",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-gnome"
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
    ],
-   "dependientes_total": 5
+   "dependientes_total": 8
   },
   "hyperfine": {
    "iname": "hyperfine",
@@ -8171,16 +8175,17 @@
     "python3"
    ],
    "cls": "c",
-   "queue": "incoming-gnome",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:92ef211974cea96f559df9784e108c07b155f80932d12d1ef4d7e3cc1363b074",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-gnome"
+    "escritorio-gnome",
+    "escritorio-kde"
    ],
-   "dependientes_total": 7
+   "dependientes_total": 28
   },
   "igrep": {
    "iname": "igrep",
@@ -9824,16 +9829,19 @@
     "samurai"
    ],
    "cls": "c",
-   "queue": "incoming-gnome",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:5db3cfd58823ffac3df3a31feafaf87efbad349228747b5ae00ce48b3cfe42c8",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-gnome"
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
    ],
-   "dependientes_total": 2
+   "dependientes_total": 6
   },
   "libdrm": {
    "iname": "libdrm",
@@ -9900,16 +9908,17 @@
    "compiler": "zig-cc",
    "deps": [],
    "cls": "rust",
-   "queue": "incoming-gnome",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:285dda6baea988e43dca6e52348be73c302177313c9fcecf9bc7d83eb8682368",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
+    "escritorio-cosmic",
     "escritorio-gnome"
    ],
-   "dependientes_total": 5
+   "dependientes_total": 6
   },
   "libepoxy": {
    "iname": "libepoxy",
@@ -11405,14 +11414,16 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-gnome",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:9f3e9ea083e46629af1f7eaf2cd92b8129cc8909d3f552d30aa6ad8708b72016",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
-   "dependientes_total": 1
+   "perfiles": [
+    "escritorio-cosmic"
+   ],
+   "dependientes_total": 2
   },
   "lua5.2": {
    "iname": "lua5.2",
@@ -11577,7 +11588,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 119
+   "dependientes_total": 118
   },
   "mako": {
    "iname": "mako",
@@ -11995,7 +12006,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 125
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -14022,7 +14033,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 396
+   "dependientes_total": 387
   },
   "plow": {
    "iname": "plow",
@@ -14566,7 +14577,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 312
+   "dependientes_total": 307
   },
   "qrcp": {
    "iname": "qrcp",
@@ -15181,7 +15192,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 267
+   "dependientes_total": 263
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json
index 499244d5..6166cb97 100644
--- a/docs/state/build-state-kde.json
+++ b/docs/state/build-state-kde.json
@@ -1,27 +1,27 @@
 {
  "schema": "hammer-build-state/1",
  "totals": {
-  "recipes": 1034,
-  "nodes": 1036,
-  "sealed": 1034,
+  "recipes": 1037,
+  "nodes": 1039,
+  "sealed": 1037,
   "ajeno": 2
  },
  "by_class": {
   "ajeno": 2,
-  "c": 390,
+  "c": 392,
   "go": 362,
   "gui": 44,
   "kernel": 6,
-  "rust": 232
+  "rust": 233
  },
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 844,
+   "sealed": 850,
    "ajeno": 1
   },
   "incoming-kde": {
-   "sealed": 190,
+   "sealed": 187,
    "ajeno": 1
   }
  },
@@ -5289,6 +5289,30 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "fuse3": {
+   "iname": "fuse3",
+   "version": "3.18.2",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "meson",
+    "pkgconf",
+    "python3",
+    "samurai"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:09462465c16e9984a1d9cff16f2fb4d45078ccfb832afd75c2a02e657b38d677",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome"
+   ],
+   "dependientes_total": 2
+  },
   "fx": {
    "iname": "fx",
    "version": "39.2.0",
@@ -8026,16 +8050,19 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-kde",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:6fd71a1f1df0cd4d9752f087611468cfc0be6c998381dda2b8816231ab83456e",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-kde"
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
    ],
-   "dependientes_total": 2
+   "dependientes_total": 8
   },
   "hyperfine": {
    "iname": "hyperfine",
@@ -8066,16 +8093,17 @@
     "python3"
    ],
    "cls": "c",
-   "queue": "incoming-kde",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:92ef211974cea96f559df9784e108c07b155f80932d12d1ef4d7e3cc1363b074",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
+    "escritorio-gnome",
     "escritorio-kde"
    ],
-   "dependientes_total": 21
+   "dependientes_total": 28
   },
   "igrep": {
    "iname": "igrep",
@@ -13453,16 +13481,19 @@
     "samurai"
    ],
    "cls": "c",
-   "queue": "incoming-kde",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:5db3cfd58823ffac3df3a31feafaf87efbad349228747b5ae00ce48b3cfe42c8",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-kde"
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
    ],
-   "dependientes_total": 1
+   "dependientes_total": 6
   },
   "libdrm": {
    "iname": "libdrm",
@@ -13491,6 +13522,25 @@
    ],
    "dependientes_total": 148
   },
+  "libelogind": {
+   "iname": "libelogind",
+   "version": "0.0.1",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [],
+   "cls": "rust",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:285dda6baea988e43dca6e52348be73c302177313c9fcecf9bc7d83eb8682368",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome"
+   ],
+   "dependientes_total": 6
+  },
   "libepoxy": {
    "iname": "libepoxy",
    "version": "1.5.10",
@@ -15031,6 +15081,27 @@
    ],
    "dependientes_total": 0
   },
+  "lua": {
+   "iname": "lua",
+   "version": "5.4.8",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "make",
+    "pkgconf"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:9f3e9ea083e46629af1f7eaf2cd92b8129cc8909d3f552d30aa6ad8708b72016",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic"
+   ],
+   "dependientes_total": 2
+  },
   "lua5.2": {
    "iname": "lua5.2",
    "version": "5.2.4",
@@ -15194,7 +15265,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 119
+   "dependientes_total": 118
   },
   "mako": {
    "iname": "mako",
@@ -15612,7 +15683,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 125
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -17853,7 +17924,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 396
+   "dependientes_total": 387
   },
   "plasma-activities": {
    "iname": "plasma-activities",
@@ -19331,7 +19402,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 312
+   "dependientes_total": 307
   },
   "qcoro": {
    "iname": "qcoro",
@@ -20557,7 +20628,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 267
+   "dependientes_total": 263
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json
index 93171c25..ffe5cb99 100644
--- a/docs/state/build-state-wlr.json
+++ b/docs/state/build-state-wlr.json
@@ -1,27 +1,27 @@
 {
  "schema": "hammer-build-state/1",
  "totals": {
-  "recipes": 873,
-  "nodes": 875,
-  "sealed": 873,
+  "recipes": 877,
+  "nodes": 879,
+  "sealed": 877,
   "ajeno": 2
  },
  "by_class": {
   "ajeno": 2,
-  "c": 232,
+  "c": 235,
   "go": 362,
   "gui": 41,
   "kernel": 6,
-  "rust": 232
+  "rust": 233
  },
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 859,
+   "sealed": 865,
    "ajeno": 2
   },
   "incoming-wlr": {
-   "sealed": 14
+   "sealed": 12
   }
  },
  "by_profile": {
@@ -4809,6 +4809,30 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "fuse3": {
+   "iname": "fuse3",
+   "version": "3.18.2",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "meson",
+    "pkgconf",
+    "python3",
+    "samurai"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:09462465c16e9984a1d9cff16f2fb4d45078ccfb832afd75c2a02e657b38d677",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome"
+   ],
+   "dependientes_total": 2
+  },
   "fuzzel": {
    "iname": "fuzzel",
    "version": "1.12.0",
@@ -7533,16 +7557,19 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-wlr",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:6fd71a1f1df0cd4d9752f087611468cfc0be6c998381dda2b8816231ab83456e",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
-   "dependientes_total": 3
+   "dependientes_total": 8
   },
   "hyperfine": {
    "iname": "hyperfine",
@@ -7563,6 +7590,28 @@
    ],
    "dependientes_total": 0
   },
+  "icu4c": {
+   "iname": "icu4c",
+   "version": "77.1",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "pkgconf",
+    "python3"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:92ef211974cea96f559df9784e108c07b155f80932d12d1ef4d7e3cc1363b074",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-gnome",
+    "escritorio-kde"
+   ],
+   "dependientes_total": 28
+  },
   "igrep": {
    "iname": "igrep",
    "version": "1.3.0",
@@ -9178,16 +9227,19 @@
     "samurai"
    ],
    "cls": "c",
-   "queue": "incoming-wlr",
+   "queue": "corpus",
    "foreign": false,
    "hash": "b3:5db3cfd58823ffac3df3a31feafaf87efbad349228747b5ae00ce48b3cfe42c8",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
     "escritorio-sway"
    ],
-   "dependientes_total": 2
+   "dependientes_total": 6
   },
   "libdrm": {
    "iname": "libdrm",
@@ -9216,6 +9268,25 @@
    ],
    "dependientes_total": 148
   },
+  "libelogind": {
+   "iname": "libelogind",
+   "version": "0.0.1",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [],
+   "cls": "rust",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:285dda6baea988e43dca6e52348be73c302177313c9fcecf9bc7d83eb8682368",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome"
+   ],
+   "dependientes_total": 6
+  },
   "libepoxy": {
    "iname": "libepoxy",
    "version": "1.5.10",
@@ -10296,6 +10367,27 @@
    ],
    "dependientes_total": 0
   },
+  "lua": {
+   "iname": "lua",
+   "version": "5.4.8",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "make",
+    "pkgconf"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:9f3e9ea083e46629af1f7eaf2cd92b8129cc8909d3f552d30aa6ad8708b72016",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic"
+   ],
+   "dependientes_total": 2
+  },
   "lua5.2": {
    "iname": "lua5.2",
    "version": "5.2.4",
@@ -10459,7 +10551,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 119
+   "dependientes_total": 118
   },
   "mako": {
    "iname": "mako",
@@ -10877,7 +10969,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 125
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -12738,7 +12830,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 396
+   "dependientes_total": 387
   },
   "plow": {
    "iname": "plow",
@@ -13163,7 +13255,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 312
+   "dependientes_total": 307
   },
   "qrcp": {
    "iname": "qrcp",
@@ -13778,7 +13870,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 267
+   "dependientes_total": 263
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state.json b/docs/state/build-state.json
index 35e0ac16..320970b9 100644
--- a/docs/state/build-state.json
+++ b/docs/state/build-state.json
@@ -1,23 +1,23 @@
 {
  "schema": "hammer-build-state/1",
  "totals": {
-  "recipes": 860,
-  "nodes": 862,
-  "sealed": 860,
+  "recipes": 866,
+  "nodes": 868,
+  "sealed": 866,
   "ajeno": 2
  },
  "by_class": {
   "ajeno": 2,
-  "c": 219,
+  "c": 224,
   "go": 362,
   "gui": 41,
   "kernel": 6,
-  "rust": 232
+  "rust": 233
  },
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 860,
+   "sealed": 866,
    "ajeno": 2
   }
  },
@@ -4763,6 +4763,30 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "fuse3": {
+   "iname": "fuse3",
+   "version": "3.18.2",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "meson",
+    "pkgconf",
+    "python3",
+    "samurai"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:09462465c16e9984a1d9cff16f2fb4d45078ccfb832afd75c2a02e657b38d677",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome"
+   ],
+   "dependientes_total": 2
+  },
   "fx": {
    "iname": "fx",
    "version": "39.2.0",
@@ -7407,6 +7431,29 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "hwdata": {
+   "iname": "hwdata",
+   "version": "0.393",
+   "link": "dynamic",
+   "compiler": "gcc",
+   "deps": [
+    "pkgconf"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:6fd71a1f1df0cd4d9752f087611468cfc0be6c998381dda2b8816231ab83456e",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
+   ],
+   "dependientes_total": 8
+  },
   "hyperfine": {
    "iname": "hyperfine",
    "version": "1.20.0",
@@ -7426,6 +7473,28 @@
    ],
    "dependientes_total": 0
   },
+  "icu4c": {
+   "iname": "icu4c",
+   "version": "77.1",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "pkgconf",
+    "python3"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:92ef211974cea96f559df9784e108c07b155f80932d12d1ef4d7e3cc1363b074",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-gnome",
+    "escritorio-kde"
+   ],
+   "dependientes_total": 28
+  },
   "igrep": {
    "iname": "igrep",
    "version": "1.3.0",
@@ -9028,6 +9097,33 @@
    ],
    "dependientes_total": 3
   },
+  "libdisplay-info": {
+   "iname": "libdisplay-info",
+   "version": "0.2.0",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "hwdata",
+    "meson",
+    "pkgconf",
+    "python3",
+    "samurai"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:5db3cfd58823ffac3df3a31feafaf87efbad349228747b5ae00ce48b3cfe42c8",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
+   ],
+   "dependientes_total": 6
+  },
   "libdrm": {
    "iname": "libdrm",
    "version": "2.4.134",
@@ -9055,6 +9151,25 @@
    ],
    "dependientes_total": 148
   },
+  "libelogind": {
+   "iname": "libelogind",
+   "version": "0.0.1",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [],
+   "cls": "rust",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:285dda6baea988e43dca6e52348be73c302177313c9fcecf9bc7d83eb8682368",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome"
+   ],
+   "dependientes_total": 6
+  },
   "libepoxy": {
    "iname": "libepoxy",
    "version": "1.5.10",
@@ -10135,6 +10250,27 @@
    ],
    "dependientes_total": 0
   },
+  "lua": {
+   "iname": "lua",
+   "version": "5.4.8",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "make",
+    "pkgconf"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "foreign": false,
+   "hash": "b3:9f3e9ea083e46629af1f7eaf2cd92b8129cc8909d3f552d30aa6ad8708b72016",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic"
+   ],
+   "dependientes_total": 2
+  },
   "lua5.2": {
    "iname": "lua5.2",
    "version": "5.2.4",
@@ -10298,7 +10434,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 119
+   "dependientes_total": 118
   },
   "mako": {
    "iname": "mako",
@@ -10716,7 +10852,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 125
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -12577,7 +12713,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 396
+   "dependientes_total": 387
   },
   "plow": {
    "iname": "plow",
@@ -13002,7 +13138,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 312
+   "dependientes_total": 307
   },
   "qrcp": {
    "iname": "qrcp",
@@ -13617,7 +13753,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 267
+   "dependientes_total": 263
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/duplicados.json b/docs/state/duplicados.json
index d49cb940..1fa44f5a 100644
--- a/docs/state/duplicados.json
+++ b/docs/state/duplicados.json
@@ -30,13 +30,11 @@
    "sha": "ab5a03176ee106d3",
    "nudos": [
     "corpus/bzip2",
-    "corpus/bzip2-shared",
-    "incoming-kde/bzip2-shared"
+    "corpus/bzip2-shared"
    ],
    "radio": {
-    "corpus/bzip2-shared": 3,
-    "corpus/bzip2": 10,
-    "incoming-kde/bzip2-shared": 3
+    "corpus/bzip2-shared": 6,
+    "corpus/bzip2": 10
    }
   },
   {
@@ -162,18 +160,14 @@
    "nudos": [
     "corpus/glib",
     "corpus/glib-shared",
-    "incoming-cosmic/glib-shared",
     "incoming-gnome/glib",
-    "incoming-gnome/glib-introspected",
-    "incoming-kde/glib-shared"
+    "incoming-gnome/glib-introspected"
    ],
    "radio": {
-    "corpus/glib-shared": 14,
+    "corpus/glib-shared": 26,
     "corpus/glib": 30,
-    "incoming-cosmic/glib-shared": 1,
     "incoming-gnome/glib-introspected": 29,
-    "incoming-gnome/glib": 42,
-    "incoming-kde/glib-shared": 11
+    "incoming-gnome/glib": 42
    }
   },
   {
@@ -210,7 +204,7 @@
    ],
    "radio": {
     "corpus/libffi-shared": 10,
-    "corpus/libffi": 109
+    "corpus/libffi": 107
    }
   },
   {
@@ -387,15 +381,11 @@
    "sha": "47fe8c99461250d4",
    "nudos": [
     "corpus/pcre2",
-    "corpus/pcre2-shared",
-    "incoming-cosmic/pcre2-shared",
-    "incoming-kde/pcre2-shared"
+    "corpus/pcre2-shared"
    ],
    "radio": {
-    "corpus/pcre2-shared": 15,
-    "corpus/pcre2": 78,
-    "incoming-cosmic/pcre2-shared": 2,
-    "incoming-kde/pcre2-shared": 12
+    "corpus/pcre2-shared": 27,
+    "corpus/pcre2": 78
    }
   },
   {
@@ -418,7 +408,7 @@
     "corpus/readline-shared"
    ],
    "radio": {
-    "corpus/readline-shared": 3,
+    "corpus/readline-shared": 2,
     "corpus/readline": 4
    }
   },
@@ -426,13 +416,11 @@
    "sha": "67d3fe6d268e6ead",
    "nudos": [
     "corpus/sqlite",
-    "corpus/sqlite-shared",
-    "incoming-gnome/sqlite-shared"
+    "corpus/sqlite-shared"
    ],
    "radio": {
-    "corpus/sqlite-shared": 1,
-    "corpus/sqlite": 4,
-    "incoming-gnome/sqlite-shared": 6
+    "corpus/sqlite-shared": 7,
+    "corpus/sqlite": 4
    }
   },
   {
@@ -452,13 +440,11 @@
    "sha": "fff1ffcf2b0da84d",
    "nudos": [
     "corpus/xz",
-    "corpus/xz-shared",
-    "incoming-kde/xz-shared"
+    "corpus/xz-shared"
    ],
    "radio": {
-    "corpus/xz-shared": 1,
-    "corpus/xz": 14,
-    "incoming-kde/xz-shared": 4
+    "corpus/xz-shared": 5,
+    "corpus/xz": 14
    }
   },
   {
@@ -468,7 +454,7 @@
     "corpus/zlib-shared"
    ],
    "radio": {
-    "corpus/zlib-shared": 90,
+    "corpus/zlib-shared": 86,
     "corpus/zlib": 107
    }
   },
@@ -578,194 +564,6 @@
   }
  ],
  "sombras": [
-  {
-   "nombre": "bzip2-shared",
-   "colas": [
-    "corpus",
-    "incoming-kde"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/bzip2-shared": 3,
-    "incoming-kde/bzip2-shared": 3
-   }
-  },
-  {
-   "nombre": "fuse3",
-   "colas": [
-    "incoming-cosmic",
-    "incoming-gnome"
-   ],
-   "redundante": true,
-   "radio": {
-    "incoming-cosmic/fuse3": 1,
-    "incoming-gnome/fuse3": 1
-   }
-  },
-  {
-   "nombre": "glib-shared",
-   "colas": [
-    "corpus",
-    "incoming-cosmic",
-    "incoming-kde"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/glib-shared": 14,
-    "incoming-cosmic/glib-shared": 1,
-    "incoming-kde/glib-shared": 11
-   }
-  },
-  {
-   "nombre": "hwdata",
-   "colas": [
-    "incoming-cosmic",
-    "incoming-gnome",
-    "incoming-kde",
-    "incoming-wlr"
-   ],
-   "redundante": true,
-   "radio": {
-    "incoming-cosmic/hwdata": 1,
-    "incoming-gnome/hwdata": 5,
-    "incoming-kde/hwdata": 2,
-    "incoming-wlr/hwdata": 3
-   }
-  },
-  {
-   "nombre": "icu4c",
-   "colas": [
-    "incoming-gnome",
-    "incoming-kde"
-   ],
-   "redundante": true,
-   "radio": {
-    "incoming-gnome/icu4c": 7,
-    "incoming-kde/icu4c": 21
-   }
-  },
-  {
-   "nombre": "lcms2",
-   "colas": [
-    "corpus",
-    "incoming-gnome",
-    "incoming-kde"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/lcms2": 3,
-    "incoming-gnome/lcms2": 3,
-    "incoming-kde/lcms2": 6
-   }
-  },
-  {
-   "nombre": "libdisplay-info",
-   "colas": [
-    "incoming-cosmic",
-    "incoming-gnome",
-    "incoming-kde",
-    "incoming-wlr"
-   ],
-   "redundante": true,
-   "radio": {
-    "incoming-cosmic/libdisplay-info": 1,
-    "incoming-gnome/libdisplay-info": 2,
-    "incoming-kde/libdisplay-info": 1,
-    "incoming-wlr/libdisplay-info": 2
-   }
-  },
-  {
-   "nombre": "libelogind",
-   "colas": [
-    "incoming-cosmic",
-    "incoming-gnome"
-   ],
-   "redundante": true,
-   "radio": {
-    "incoming-cosmic/libelogind": 1,
-    "incoming-gnome/libelogind": 5
-   }
-  },
-  {
-   "nombre": "lua",
-   "colas": [
-    "incoming-cosmic",
-    "incoming-gnome"
-   ],
-   "redundante": true,
-   "radio": {
-    "incoming-cosmic/lua": 1,
-    "incoming-gnome/lua": 1
-   }
-  },
-  {
-   "nombre": "mpc",
-   "colas": [
-    "corpus",
-    "incoming-kde"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/mpc": 1,
-    "incoming-kde/mpc": 1
-   }
-  },
-  {
-   "nombre": "pcre2-shared",
-   "colas": [
-    "corpus",
-    "incoming-cosmic",
-    "incoming-kde"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/pcre2-shared": 15,
-    "incoming-cosmic/pcre2-shared": 2,
-    "incoming-kde/pcre2-shared": 12
-   }
-  },
-  {
-   "nombre": "sqlite-shared",
-   "colas": [
-    "corpus",
-    "incoming-gnome"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/sqlite-shared": 1,
-    "incoming-gnome/sqlite-shared": 6
-   }
-  },
-  {
-   "nombre": "xkeyboard-config",
-   "colas": [
-    "corpus",
-    "incoming-cosmic",
-    "incoming-gnome",
-    "incoming-kde",
-    "incoming-wlr"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/xkeyboard-config": 0,
-    "incoming-cosmic/xkeyboard-config": 0,
-    "incoming-gnome/xkeyboard-config": 4,
-    "incoming-kde/xkeyboard-config": 1,
-    "incoming-wlr/xkeyboard-config": 0
-   }
-  },
-  {
-   "nombre": "xz-shared",
-   "colas": [
-    "corpus",
-    "incoming-kde"
-   ],
-   "redundante": true,
-   "radio": {
-    "corpus/xz-shared": 1,
-    "incoming-kde/xz-shared": 4
-   }
-  },
   {
    "nombre": "cairo-shared",
    "colas": [
@@ -827,7 +625,7 @@
    "radio": {
     "corpus/gmp": 3,
     "incoming-cosmic/gmp": 2,
-    "incoming-kde/gmp": 4
+    "incoming-kde/gmp": 3
    }
   },
   {
@@ -1033,7 +831,7 @@
    "radio": {
     "corpus/mpfr": 2,
     "incoming-cosmic/mpfr": 1,
-    "incoming-kde/mpfr": 3
+    "incoming-kde/mpfr": 2
    }
   },
   {
diff --git a/docs/state/keystones.json b/docs/state/keystones.json
index 024013d2..09d59156 100644
--- a/docs/state/keystones.json
+++ b/docs/state/keystones.json
@@ -3,35 +3,35 @@
  "nudos": [
   {
    "nudo": "corpus/make",
-   "gateo_total": 527,
+   "gateo_total": 512,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
    "nudo": "corpus/binutils",
-   "gateo_total": 448,
+   "gateo_total": 434,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
    "nudo": "corpus/pkgconf",
-   "gateo_total": 447,
+   "gateo_total": 426,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
    "nudo": "corpus/zlib",
-   "gateo_total": 381,
+   "gateo_total": 368,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
    "nudo": "corpus/perl",
-   "gateo_total": 377,
+   "gateo_total": 364,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
@@ -44,71 +44,71 @@
    "en_deuda": false
   },
   {
-   "nudo": "corpus/ncurses-shared",
-   "gateo_total": 356,
+   "nudo": "corpus/xz-shared",
+   "gateo_total": 343,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
-   "nudo": "corpus/readline-shared",
-   "gateo_total": 355,
+   "nudo": "corpus/bzip2-shared",
+   "gateo_total": 342,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
-   "nudo": "corpus/bzip2-shared",
-   "gateo_total": 353,
+   "nudo": "corpus/ncurses-shared",
+   "gateo_total": 342,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
-   "nudo": "corpus/openssl-threads",
-   "gateo_total": 353,
+   "nudo": "corpus/readline-shared",
+   "gateo_total": 341,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
-   "nudo": "corpus/sqlite-shared",
-   "gateo_total": 353,
+   "nudo": "corpus/openssl-threads",
+   "gateo_total": 340,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
-   "nudo": "corpus/xz-shared",
-   "gateo_total": 353,
+   "nudo": "corpus/sqlite-shared",
+   "gateo_total": 340,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
    "nudo": "corpus/python3",
-   "gateo_total": 352,
+   "gateo_total": 339,
    "gateo_en_deuda": 0,
-   "exclusivo": 2,
+   "exclusivo": 1,
    "en_deuda": false
   },
   {
    "nudo": "corpus/samurai",
-   "gateo_total": 334,
+   "gateo_total": 324,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
    "nudo": "corpus/meson",
-   "gateo_total": 311,
+   "gateo_total": 301,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
    "nudo": "corpus/libffi",
-   "gateo_total": 242,
+   "gateo_total": 240,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
@@ -415,15 +415,15 @@
    "en_deuda": false
   },
   {
-   "nudo": "corpus/zlib-shared",
+   "nudo": "incoming-kde/qtdeclarative",
    "gateo_total": 100,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
-   "nudo": "incoming-kde/qtdeclarative",
-   "gateo_total": 100,
+   "nudo": "corpus/zlib-shared",
+   "gateo_total": 96,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
@@ -541,14 +541,14 @@
    "en_deuda": false
   },
   {
-   "nudo": "corpus/m4",
-   "gateo_total": 44,
+   "nudo": "corpus/libpng",
+   "gateo_total": 43,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
    "en_deuda": false
   },
   {
-   "nudo": "corpus/libpng",
+   "nudo": "corpus/m4",
    "gateo_total": 43,
    "gateo_en_deuda": 0,
    "exclusivo": 0,
diff --git a/docs/state/repro-verificado.tsv b/docs/state/repro-verificado.tsv
index 78d48e32..53b787fc 100644
--- a/docs/state/repro-verificado.tsv
+++ b/docs/state/repro-verificado.tsv
@@ -57,3 +57,6 @@ vim	b4c0d477428af4bf75e9b55d6ff2b2508b7f7e55f4ace9207a6f25c4d3080bd8	2026-09-05
 kbd	be9969f808c8499972e213f474a52d5f7477bf7faff78b6e0ec580aede507231	2026-09-05	reproduce
 npth	e5682fca87a9f591d533855b0056a07b5724304fb53402c940524d885908d980	2026-09-05	reproduce
 musl-fts	b9681a5205197d51bb777efde1a271e9b189bf35d74091834c5f1aa43d82f16e	2026-09-05	reproduce
+json-glib	e346cb599d070d407a853725cec97e6cd1b0a0a647b6767612093120050a5fa7	2026-09-08	reproduce
+zathura	685efcac30d6821ac9ac0a0f492815b2a469c3360bb3a3c1a6637b3258193dd5	2026-09-08	reproduce
+zathura-pdf-poppler	04c8b7bac22a303d7e4edaebcf91833277e52a2fdcf0a741d165176c9b49afd8	2026-09-08	reproduce
diff --git a/recipes/incoming-cosmic/fuse3.toml b/recipes/fuse3.toml
similarity index 80%
rename from recipes/incoming-cosmic/fuse3.toml
rename to recipes/fuse3.toml
index c7e0cc30..d15df467 100644
--- a/recipes/incoming-cosmic/fuse3.toml
+++ b/recipes/fuse3.toml
@@ -1,3 +1,13 @@
+# ══ PROMOVIDA AL CORPUS DESDE LAS COLAS (2026-09-08) ═══════════════════════════════════════════
+# Existía IDÉNTICA byte a byte en 2 colas de escritorio (cosmic,gnome), con el MISMO
+# ArtifactHash en todas — verificado con `hammer hash` antes de mover, no deducido del nombre.
+# Sube al corpus por la razón que ya escribió `xkeyboard-config`: una receta resuelve sibling-first
+# y después el catálogo PADRE, nunca una cola hermana, así que **lo que comparten varias imágenes
+# tiene que vivir acá o no lo alcanzan**. Aquí lo comparten 2.
+#
+# A diferencia de aquella, las copias de las colas SÍ se barren en el mismo movimiento: sin copia en
+# el corpus no había dónde caer, y dejarlas sería mantener 2 ficheros que son el mismo hash.
+# Cero rebuilds: el hash no se mueve, sólo cambia de dónde lo resuelve cada consumidor.
 # fuse3 (libfuse 3.18.2) — el primer eslabón de LA CADENA DEL PORTAL, y no está acá por su función
 # sino porque `xdg-desktop-portal` lo pide con `dependency('fuse3', version: '>= 3.10.0')` sin
 # `required:`. El frontend lo usa para el *document portal*: un sistema de ficheros FUSE que expone
diff --git a/recipes/hwdata.toml b/recipes/hwdata.toml
new file mode 100644
index 00000000..64f446d9
--- /dev/null
+++ b/recipes/hwdata.toml
@@ -0,0 +1,34 @@
+# ══ PROMOVIDA AL CORPUS DESDE LAS COLAS (2026-09-08) ═══════════════════════════════════════════
+# Existía IDÉNTICA byte a byte en 4 colas de escritorio (cosmic,gnome,kde,wlr), con el MISMO
+# ArtifactHash en todas — verificado con `hammer hash` antes de mover, no deducido del nombre.
+# Sube al corpus por la razón que ya escribió `xkeyboard-config`: una receta resuelve sibling-first
+# y después el catálogo PADRE, nunca una cola hermana, así que **lo que comparten varias imágenes
+# tiene que vivir acá o no lo alcanzan**. Aquí lo comparten 4.
+#
+# A diferencia de aquella, las copias de las colas SÍ se barren en el mismo movimiento: sin copia en
+# el corpus no había dónde caer, y dejarlas sería mantener 4 ficheros que son el mismo hash.
+# Cero rebuilds: el hash no se mueve, sólo cambia de dónde lo resuelve cada consumidor.
+# hwdata 0.393 — bases de datos de IDs de hardware (pnp.ids, pci.ids, usb.ids) + hwdata.pc. Sin código:
+# sólo datos. Campaña KDE (ADR 0011): lo exige libdisplay-info en tiempo de build (dependency('hwdata')
+# native → pkgdatadir/pnp.ids) y kwin como RUNTIME (find_package(hwdata) TYPE RUNTIME, tabla PNP de EDID).
+# `configure` es un script shell propio (no autoconf); no compila nada.
+name    = "hwdata"
+version = "0.393"
+
+[source]
+tarball = "https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.393.tar.gz"
+sha256  = "322add86944680e99d04468d49de180a7ce0c77fb406f7abde8ab14f2d161051"
+
+[build]
+compiler = "gcc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = './configure --prefix=/usr --libdir=/usr/lib --datadir=/usr/share'
+compile   = 'true'
+install   = 'make install DESTDIR=/out'
+
+[deps]
+build = ["pkgconf"]
diff --git a/recipes/icu4c.toml b/recipes/icu4c.toml
new file mode 100644
index 00000000..7d189164
--- /dev/null
+++ b/recipes/icu4c.toml
@@ -0,0 +1,37 @@
+# ══ PROMOVIDA AL CORPUS DESDE LAS COLAS (2026-09-08) ═══════════════════════════════════════════
+# Existía IDÉNTICA byte a byte en 2 colas de escritorio (gnome,kde), con el MISMO
+# ArtifactHash en todas — verificado con `hammer hash` antes de mover, no deducido del nombre.
+# Sube al corpus por la razón que ya escribió `xkeyboard-config`: una receta resuelve sibling-first
+# y después el catálogo PADRE, nunca una cola hermana, así que **lo que comparten varias imágenes
+# tiene que vivir acá o no lo alcanzan**. Aquí lo comparten 2.
+#
+# A diferencia de aquella, las copias de las colas SÍ se barren en el mismo movimiento: sin copia en
+# el corpus no había dónde caer, y dejarlas sería mantener 2 ficheros que son el mismo hash.
+# Cero rebuilds: el hash no se mueve, sólo cambia de dónde lo resuelve cada consumidor.
+# icu4c 77.1 — International Components for Unicode (libicuuc/libicui18n/libicudata.so). Dep transitiva
+# del stack Qt/KDE (ki18n opcional, libqalculate opcional, apps con colación Unicode). C++ autotools;
+# el tarball descomprime a `icu/source/` → todas las fases entran con `cd source`. musl, shared.
+name    = "icu4c"
+version = "77.1"
+license = "MIT"
+
+[source]
+tarball = "https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz"
+sha256  = "588e431f77327c39031ffbb8843c0e3bc122c211374485fa87dc5f3faff24061"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "dynamic"
+flags    = []
+
+[build.phases]
+configure = '''
+cd source && ./configure --prefix=/usr --enable-shared --disable-static \
+  --disable-samples --disable-tests
+'''
+compile   = "cd source && make -j\"$(nproc)\""
+install   = "cd source && make install DESTDIR=/out"
+
+[deps]
+build = ["pkgconf", "python3"]
diff --git a/recipes/incoming-cosmic/hwdata.toml b/recipes/incoming-cosmic/hwdata.toml
deleted file mode 100644
index e8cc8ced..00000000
--- a/recipes/incoming-cosmic/hwdata.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-# hwdata 0.393 — bases de datos de IDs de hardware (pnp.ids, pci.ids, usb.ids) + hwdata.pc. Sin código:
-# sólo datos. Campaña KDE (ADR 0011): lo exige libdisplay-info en tiempo de build (dependency('hwdata')
-# native → pkgdatadir/pnp.ids) y kwin como RUNTIME (find_package(hwdata) TYPE RUNTIME, tabla PNP de EDID).
-# `configure` es un script shell propio (no autoconf); no compila nada.
-name    = "hwdata"
-version = "0.393"
-
-[source]
-tarball = "https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.393.tar.gz"
-sha256  = "322add86944680e99d04468d49de180a7ce0c77fb406f7abde8ab14f2d161051"
-
-[build]
-compiler = "gcc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-flags    = []
-
-[build.phases]
-configure = './configure --prefix=/usr --libdir=/usr/lib --datadir=/usr/share'
-compile   = 'true'
-install   = 'make install DESTDIR=/out'
-
-[deps]
-build = ["pkgconf"]
diff --git a/recipes/incoming-cosmic/libdisplay-info.toml b/recipes/incoming-cosmic/libdisplay-info.toml
deleted file mode 100644
index 30b2fbc1..00000000
--- a/recipes/incoming-cosmic/libdisplay-info.toml
+++ /dev/null
@@ -1,25 +0,0 @@
-# libdisplay-info 0.2.0 — parseo de EDID/DisplayID (libdisplay-info.so). Campaña KDE (ADR 0011): sustrato
-# de kwin (pkg_check_modules(libdisplay-info>=0.2.0) REQUIRED, lectura de EDID de los monitores). Meson.
-# En build necesita pnp.ids: usa dependency('hwdata') native → si no está, cae a /usr/share/hwdata/pnp.ids
-# y meson `files()` EXIGE que exista ⇒ hwdata es dep de build. Sin di-edid-decode (tool) para evitar más deps.
-name    = "libdisplay-info"
-version = "0.2.0"
-license = "MIT"
-
-[source]
-tarball = "https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/0.2.0/libdisplay-info-0.2.0.tar.gz"
-sha256  = "f7331fcaf5527251b84c8fb84238d06cd2f458422ce950c80e86c72927aa8c2b"
-
-[build]
-compiler    = "zig-cc"
-target      = "x86_64-linux-musl"
-link        = "dynamic"
-zig_version = "0.13.0"
-
-[build.phases]
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig meson setup output --prefix=/usr --buildtype=release"
-compile   = "ninja -C output"
-install   = "DESTDIR=/out ninja -C output install"
-
-[deps]
-build = ["meson", "samurai", "python3", "pkgconf", "hwdata"]
diff --git a/recipes/incoming-cosmic/libelogind.toml b/recipes/incoming-cosmic/libelogind.toml
deleted file mode 100644
index d10c1c7e..00000000
--- a/recipes/incoming-cosmic/libelogind.toml
+++ /dev/null
@@ -1,70 +0,0 @@
-# libelogind — la C-ABI `sd-login` que le faltaba a la distro, implementada en arje-compat.
-#
-# QUÉ RESUELVE: mutter (y polkit, gcr, at-spi2-core) exigen un proveedor de logind por pkg-config —
-# `libsystemd` o `libelogind`— para llamar la API C sd-login. Esa API NO es un cliente D-Bus: lee
-# `/run/systemd/{sessions,users,seats}`. Los otros tres tienen perilla para esquivarla y se
-# construyeron por su camino degradado; **mutter no tiene**, porque `-Dudev=false` exige
-# `-Dlogind=false` (mutter/meson.build:257) y sin udev+logind no hay backend nativo KMS: no hay
-# compositor de verdad, sólo anidado.
-#
-# POR QUÉ NO ES elogind NI UN STUB: `arje-logind-compat` ya escribe ese estado en /run/systemd (ver
-# `arje_compat::login_state`). Lo único que faltaba era una librería que lo LEYERA y lo ofreciera en
-# C. `arje-sdlogin-compat` hace exactamente eso — no inventa datos ni levanta un daemon paralelo.
-# Empaquetar elogind sería traer un logind entero a competirle al que arje ya tiene.
-#
-# Corrige de paso lo que afirma el comentario de recipes/arje-logind-compat.toml («no hace falta la
-# C-ABI sd-login… los escritorios consultan login1 en RUNTIME por D-Bus»): es cierto para los
-# clientes D-Bus y FALSO para mutter, que la enlaza.
-#
-# HUB-ONLY, como toda receta de fuente tawasuyu: la gitea escucha en :2345 y el worker efímero es
-# secretless ⇒ recibe Connection refused en :22. Se muele en el hub.
-name    = "libelogind"
-version = "0.0.1"
-license = "MIT"
-
-[source]
-# El `commit` es el identificador inmutable; la URL es sólo locator y NO entra al ArtifactHash.
-# Rama `selfhost/arje-zero-attest-lockfile`, igual que arje-logind-compat, porque es la única que
-# versiona el `Cargo.lock` de la raíz: sin él, el vendoreo `--locked` del fetch no es reproducible
-# (el monorepo lo gitignora en main).
-repo   = "gitea@git.tawasuyu.net:tawasuyu/tawasuyu.git"
-commit = "749edfe41766e098d3eb18561c6a396610c5cd8e"
-# El monorepo COMMITEA su propio `vendor/` (`[patch.crates-io] smithay = { path = "vendor/smithay" }`,
-# la copia parcheada que mirada necesita para el tearing) y el `cargo vendor` de hammer escribe ahí
-# por defecto, pisándolo: el build muere con `failed to read /src/vendor/smithay/.cargo-checksum.json`
-# al resolver la dep git de taffy. Se vendorea a un subdir aparte, igual que arje-logind-compat.
-# Apareció recién ahora porque el `vendor/` entró a esta rama con el merge de main, no antes.
-# Ver [[hammer-cargo-vendor-clobbers-project-vendor]].
-cargo_vendor_dir = ".hammer-cargo-vendor"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-# dynamic, no static: el producto ES una librería compartida (cdylib). Con `link = "static"` el lab
-# exporta -static y no hay .so que valga.
-link     = "dynamic"
-flags    = ["-p", "arje-sdlogin-compat"]
-
-[build.phases]
-# Sólo se sobrescribe `install`: el `compile` por defecto del lab (cargo build --release, offline y
-# vendoreado) es el correcto. El default de Cargo copia EJECUTABLES a /usr/bin, y acá no hay ninguno:
-# hay una .so, una cabecera y un .pc.
-#
-# El SONAME (libelogind.so.0) lo fija el build.rs del crate, no esta receta, para que un `cargo build`
-# a mano también produzca algo enlazable. Por eso el fichero se instala directamente con ese nombre y
-# el `libelogind.so` es el symlink de desarrollo que busca el linker.
-#
-# La cabecera va a /usr/include/elogind/systemd/ y el .pc trae `-I${includedir}/elogind`: así el
-# `#include <systemd/sd-login.h>` de mutter resuelve sin que mutter sepa que somos nosotros. Es el
-# mismo arreglo de elogind upstream.
-install = '''
-set -e
-mkdir -p /out/usr/lib/pkgconfig /out/usr/include/elogind/systemd
-cp target/release/libelogind.so /out/usr/lib/libelogind.so.0
-ln -s libelogind.so.0 /out/usr/lib/libelogind.so
-cp 03_ukupacha/arje/arje-sdlogin-compat/include/systemd/sd-login.h /out/usr/include/elogind/systemd/
-# sd-daemon.h va aparte porque en systemd también son dos cabeceras y quien la usa la pide por su
-# nombre: gdm hace `#include <systemd/sd-daemon.h>` en common/gdm-log.c para `sd_booted()`.
-cp 03_ukupacha/arje/arje-sdlogin-compat/include/systemd/sd-daemon.h /out/usr/include/elogind/systemd/
-cp 03_ukupacha/arje/arje-sdlogin-compat/pkgconfig/libelogind.pc /out/usr/lib/pkgconfig/
-'''
diff --git a/recipes/incoming-gnome/fuse3.toml b/recipes/incoming-gnome/fuse3.toml
deleted file mode 100644
index c7e0cc30..00000000
--- a/recipes/incoming-gnome/fuse3.toml
+++ /dev/null
@@ -1,57 +0,0 @@
-# fuse3 (libfuse 3.18.2) — el primer eslabón de LA CADENA DEL PORTAL, y no está acá por su función
-# sino porque `xdg-desktop-portal` lo pide con `dependency('fuse3', version: '>= 3.10.0')` sin
-# `required:`. El frontend lo usa para el *document portal*: un sistema de ficheros FUSE que expone
-# a cada aplicación sólo los ficheros que el usuario le concedió por el selector.
-#
-# No es negociable por opción de meson —el `dependency()` es incondicional— así que o está o el
-# frontend no configura.
-#
-# ── LO BARATO ────────────────────────────────────────────────────────────────────────────────────
-# libfuse no tiene deps duras: sus únicos `dependency()` son `liburing` y `numa`, ambos
-# `required: false`, más `threads`. Es meson y C plano.
-#
-# ── LO QUE SE APAGA, Y POR QUÉ ───────────────────────────────────────────────────────────────────
-# `useroot=false`     — el build normal hace `chown root` y pone el setuid en `fusermount3`. En el
-#                       sandbox no somos root y no hay a quién chownear; el bit se pone al armar la
-#                       imagen, no al construir el artefacto.
-# `examples=false`,
-# `tests=false`       — no se instalan y sólo suman superficie de compilación.
-# `disable-mtab=true` — esta base no tiene `/etc/mtab` (ni el `mount` de util-linux que lo escribe).
-# `initscriptdir=''`  — no hay sysvinit: el PID1 es arje-zero.
-# `enable-io-uring=false` — `liburing` no está en el corpus; con `required:false` meson lo saltearía
-#                       igual, pero dejarlo explícito hace que el artefacto no dependa de si la
-#                       librería aparece en el rootfs del constructor. Es la diferencia entre sellar
-#                       lo que quisimos y sellar lo que había.
-name    = "fuse3"
-version = "3.18.2"
-
-[source]
-tarball = "https://github.com/libfuse/libfuse/archive/fuse-3.18.2/libfuse-fuse-3.18.2.tar.gz"
-sha256  = "55a97cfd8661a9b42ff0123b44af52cac49feaec36987f4d968c046f93b42e1d"
-
-[build]
-compiler    = "zig-cc"
-target      = "x86_64-linux-musl"
-link        = "dynamic"
-zig_version = "0.13.0"
-
-[build.phases]
-# ⚠ **NO poner `-Ddisable-libc-symbol-version=true`, aunque suene a lo correcto para musl.** Lo
-# probé primero razonando que musl no implementa versionado de símbolos, y falla en el enlace con
-#     ld.lld: error: version script assignment of 'FUSE_3.0' to symbol 'fuse_loop_mt' failed:
-#             symbol not defined
-# La razón está en el propio meson de upstream: la opción sólo pone `versioned_symbols = 0`, que hace
-# que `lib/compat.c` NO emita los alias versionados… pero `lib/meson.build:54` pasa
-# `-Wl,--version-script` **incondicionalmente**. O sea que la opción deja el script pidiendo símbolos
-# que ya nadie define: es una combinación incoherente de upstream, no una limitación de musl.
-#
-# Y de paso quedó medido que la auto-detección de upstream **no conoce musl**: sólo apaga el
-# versionado para `__UCLIBC__` y `__APPLE__` (meson.build:214), así que en musl el valor por defecto
-# es 1 — que es con lo que Alpine construye libfuse y funciona: musl tolera `.symver`, simplemente
-# ignora las versiones en tiempo de ejecución. Se deja el DEFECTO.
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig meson setup output --prefix=/usr --buildtype=release -Dexamples=false -Dtests=false -Duseroot=false -Ddisable-mtab=true -Dinitscriptdir= -Denable-io-uring=false"
-compile   = "ninja -C output"
-install   = "DESTDIR=/out ninja -C output install"
-
-[deps]
-build = ["meson", "samurai", "python3", "pkgconf"]
diff --git a/recipes/incoming-gnome/hwdata.toml b/recipes/incoming-gnome/hwdata.toml
deleted file mode 100644
index e8cc8ced..00000000
--- a/recipes/incoming-gnome/hwdata.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-# hwdata 0.393 — bases de datos de IDs de hardware (pnp.ids, pci.ids, usb.ids) + hwdata.pc. Sin código:
-# sólo datos. Campaña KDE (ADR 0011): lo exige libdisplay-info en tiempo de build (dependency('hwdata')
-# native → pkgdatadir/pnp.ids) y kwin como RUNTIME (find_package(hwdata) TYPE RUNTIME, tabla PNP de EDID).
-# `configure` es un script shell propio (no autoconf); no compila nada.
-name    = "hwdata"
-version = "0.393"
-
-[source]
-tarball = "https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.393.tar.gz"
-sha256  = "322add86944680e99d04468d49de180a7ce0c77fb406f7abde8ab14f2d161051"
-
-[build]
-compiler = "gcc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-flags    = []
-
-[build.phases]
-configure = './configure --prefix=/usr --libdir=/usr/lib --datadir=/usr/share'
-compile   = 'true'
-install   = 'make install DESTDIR=/out'
-
-[deps]
-build = ["pkgconf"]
diff --git a/recipes/incoming-gnome/icu4c.toml b/recipes/incoming-gnome/icu4c.toml
deleted file mode 100644
index e1b53aa7..00000000
--- a/recipes/incoming-gnome/icu4c.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# icu4c 77.1 — International Components for Unicode (libicuuc/libicui18n/libicudata.so). Dep transitiva
-# del stack Qt/KDE (ki18n opcional, libqalculate opcional, apps con colación Unicode). C++ autotools;
-# el tarball descomprime a `icu/source/` → todas las fases entran con `cd source`. musl, shared.
-name    = "icu4c"
-version = "77.1"
-license = "MIT"
-
-[source]
-tarball = "https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz"
-sha256  = "588e431f77327c39031ffbb8843c0e3bc122c211374485fa87dc5f3faff24061"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-flags    = []
-
-[build.phases]
-configure = '''
-cd source && ./configure --prefix=/usr --enable-shared --disable-static \
-  --disable-samples --disable-tests
-'''
-compile   = "cd source && make -j\"$(nproc)\""
-install   = "cd source && make install DESTDIR=/out"
-
-[deps]
-build = ["pkgconf", "python3"]
diff --git a/recipes/incoming-gnome/libdisplay-info.toml b/recipes/incoming-gnome/libdisplay-info.toml
deleted file mode 100644
index 30b2fbc1..00000000
--- a/recipes/incoming-gnome/libdisplay-info.toml
+++ /dev/null
@@ -1,25 +0,0 @@
-# libdisplay-info 0.2.0 — parseo de EDID/DisplayID (libdisplay-info.so). Campaña KDE (ADR 0011): sustrato
-# de kwin (pkg_check_modules(libdisplay-info>=0.2.0) REQUIRED, lectura de EDID de los monitores). Meson.
-# En build necesita pnp.ids: usa dependency('hwdata') native → si no está, cae a /usr/share/hwdata/pnp.ids
-# y meson `files()` EXIGE que exista ⇒ hwdata es dep de build. Sin di-edid-decode (tool) para evitar más deps.
-name    = "libdisplay-info"
-version = "0.2.0"
-license = "MIT"
-
-[source]
-tarball = "https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/0.2.0/libdisplay-info-0.2.0.tar.gz"
-sha256  = "f7331fcaf5527251b84c8fb84238d06cd2f458422ce950c80e86c72927aa8c2b"
-
-[build]
-compiler    = "zig-cc"
-target      = "x86_64-linux-musl"
-link        = "dynamic"
-zig_version = "0.13.0"
-
-[build.phases]
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig meson setup output --prefix=/usr --buildtype=release"
-compile   = "ninja -C output"
-install   = "DESTDIR=/out ninja -C output install"
-
-[deps]
-build = ["meson", "samurai", "python3", "pkgconf", "hwdata"]
diff --git a/recipes/incoming-gnome/lua.toml b/recipes/incoming-gnome/lua.toml
deleted file mode 100644
index 3ff4e6bd..00000000
--- a/recipes/incoming-gnome/lua.toml
+++ /dev/null
@@ -1,96 +0,0 @@
-# lua 5.4.8 — el intérprete y **la librería compartida**, que es lo que hace falta acá.
-#
-# POR QUÉ ENTRA: `wireplumber` —el gestor de sesión de PipeWire, sin el cual PipeWire acepta clientes
-# pero no enumera ni enruta dispositivos— tiene su política escrita EN LUA y embebe un intérprete
-# (`lib/wplua`). Su `subprojects/lua.wrap` DESCARGA Lua 5.5 de lua.org, cosa imposible en el sandbox
-# hermético (`--wrap-mode=nodownload`), así que va con `-Dsystem-lua=true` y el sistema tiene que
-# tener Lua. Su meson acepta 5.5, 5.4 o 5.3 (meson.build:91-95); se elige **5.4**, la serie estable
-# larga que usan las distros, en vez de la 5.5 del wrap.
-#
-# ══ LO QUE ESTA RECETA TIENE QUE INVENTAR, porque upstream no lo da ═════════════════════════════
-# El Makefile de Lua sólo produce `liblua.a` y los binarios. **No hay regla de `.so` ni fichero
-# pkg-config**: los agrega cada distro. Acá se agregan las dos cosas, y a mano, porque no hay dónde
-# copiarlas de:
-#
-#  1. `-fPIC` en `MYCFLAGS`. Sin esto la `.a` no es reubicable y `libwplua` —que es un objeto
-#     compartido— no linkea: es la regla del corpus sobre `.a` no-PIC dentro de un `.so`
-#     («relocation R_X86_64_32 … recompile with -fPIC»), la misma que obligó a las variantes
-#     `-shared` de zlib, sqlite, libxml2, libuuid y dbus.
-#  2. La `.so` se enlaza a mano desde la `.a` con `--whole-archive`, porque una librería estática sólo
-#     aporta los objetos que alguien referencia y acá hay que llevárselos TODOS. SONAME
-#     `liblua-5.4.so.0`, que es el que graba quien enlace.
-#  3. El `.pc` se escribe acá. El nombre importa: wireplumber prueba `lua-5.4`, `lua5.4` y `lua54` en
-#     ese orden, así que el fichero se llama `lua5.4.pc` y ADEMÁS se deja `lua-5.4.pc` y `lua.pc` como
-#     enlaces — es más barato satisfacer las tres convenciones que adivinar cuál buscará el próximo
-#     consumidor.
-#
-# `-DLUA_USE_LINUX` es lo que activa `dlopen` y el resto de POSIX; sin él Lua se compila en modo ANSI
-# genérico y `require` de módulos C no funciona. **SIN readline a propósito**: sólo lo usa el REPL
-# interactivo, y el ncurses del catálogo es static-only y arrastra `-static` al link (el mismo
-# problema que hizo saltar `pw-top` en la receta de pipewire).
-#
-# `SYSLIBS` pierde el `-Wl,-E` de upstream: exportar todos los símbolos del EJECUTABLE sirve para que
-# módulos C cargados por `require` vean la API de Lua, y acá el que exporta es la `.so`.
-name    = "lua"
-version = "5.4.8"
-license = "MIT"
-
-[source]
-tarball = "https://www.lua.org/ftp/lua-5.4.8.tar.gz"
-sha256  = "4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-
-[build.phases]
-configure = "true"
-compile   = '''
-set -e
-# CC se pasa explícito: el Makefile de Lua lo fija a `gcc -std=gnu99` en la línea 9 y ganaría sobre el
-# del entorno.
-make -C src all CC="hammer-zig-cc -std=gnu99" \
-  SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-ldl" MYCFLAGS="-fPIC"
-# La .so que upstream no construye. --whole-archive porque de una estática el linker sólo se lleva lo
-# referenciado, y acá hay que llevárselo todo.
-hammer-zig-cc -shared -o src/liblua-5.4.so.0.0.0 \
-  -Wl,-soname,liblua-5.4.so.0 \
-  -Wl,--whole-archive src/liblua.a -Wl,--no-whole-archive -lm
-'''
-install = '''
-set -e
-mkdir -p /out/usr/bin /out/usr/lib/pkgconfig /out/usr/include /out/usr/share/man/man1
-install -m755 src/lua  /out/usr/bin/lua5.4
-install -m755 src/luac /out/usr/bin/luac5.4
-ln -s lua5.4  /out/usr/bin/lua
-ln -s luac5.4 /out/usr/bin/luac
-install -m644 src/lua.h src/luaconf.h src/lualib.h src/lauxlib.h src/lua.hpp /out/usr/include/
-install -m644 src/liblua.a /out/usr/lib/liblua-5.4.a
-install -m755 src/liblua-5.4.so.0.0.0 /out/usr/lib/
-ln -s liblua-5.4.so.0.0.0 /out/usr/lib/liblua-5.4.so.0
-ln -s liblua-5.4.so.0     /out/usr/lib/liblua-5.4.so
-ln -s liblua-5.4.so       /out/usr/lib/liblua.so
-cat > /out/usr/lib/pkgconfig/lua5.4.pc <<'PC'
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-INTERPRETER=${exec_prefix}/bin/lua5.4
-COMPILER=${exec_prefix}/bin/luac5.4
-
-Name: Lua
-Description: Lua language engine
-Version: 5.4.8
-Requires:
-Libs: -L${libdir} -llua-5.4 -lm
-Cflags: -I${includedir}
-PC
-# Las tres convenciones de nombre que se usan por ahí; wireplumber prueba lua-5.4, lua5.4 y lua54.
-ln -s lua5.4.pc /out/usr/lib/pkgconfig/lua-5.4.pc
-ln -s lua5.4.pc /out/usr/lib/pkgconfig/lua54.pc
-ln -s lua5.4.pc /out/usr/lib/pkgconfig/lua.pc
-'''
-
-[deps]
-build = ["make", "pkgconf"]
diff --git a/recipes/incoming-kde/hwdata.toml b/recipes/incoming-kde/hwdata.toml
deleted file mode 100644
index e8cc8ced..00000000
--- a/recipes/incoming-kde/hwdata.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-# hwdata 0.393 — bases de datos de IDs de hardware (pnp.ids, pci.ids, usb.ids) + hwdata.pc. Sin código:
-# sólo datos. Campaña KDE (ADR 0011): lo exige libdisplay-info en tiempo de build (dependency('hwdata')
-# native → pkgdatadir/pnp.ids) y kwin como RUNTIME (find_package(hwdata) TYPE RUNTIME, tabla PNP de EDID).
-# `configure` es un script shell propio (no autoconf); no compila nada.
-name    = "hwdata"
-version = "0.393"
-
-[source]
-tarball = "https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.393.tar.gz"
-sha256  = "322add86944680e99d04468d49de180a7ce0c77fb406f7abde8ab14f2d161051"
-
-[build]
-compiler = "gcc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-flags    = []
-
-[build.phases]
-configure = './configure --prefix=/usr --libdir=/usr/lib --datadir=/usr/share'
-compile   = 'true'
-install   = 'make install DESTDIR=/out'
-
-[deps]
-build = ["pkgconf"]
diff --git a/recipes/incoming-kde/icu4c.toml b/recipes/incoming-kde/icu4c.toml
deleted file mode 100644
index e1b53aa7..00000000
--- a/recipes/incoming-kde/icu4c.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-# icu4c 77.1 — International Components for Unicode (libicuuc/libicui18n/libicudata.so). Dep transitiva
-# del stack Qt/KDE (ki18n opcional, libqalculate opcional, apps con colación Unicode). C++ autotools;
-# el tarball descomprime a `icu/source/` → todas las fases entran con `cd source`. musl, shared.
-name    = "icu4c"
-version = "77.1"
-license = "MIT"
-
-[source]
-tarball = "https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz"
-sha256  = "588e431f77327c39031ffbb8843c0e3bc122c211374485fa87dc5f3faff24061"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-flags    = []
-
-[build.phases]
-configure = '''
-cd source && ./configure --prefix=/usr --enable-shared --disable-static \
-  --disable-samples --disable-tests
-'''
-compile   = "cd source && make -j\"$(nproc)\""
-install   = "cd source && make install DESTDIR=/out"
-
-[deps]
-build = ["pkgconf", "python3"]
diff --git a/recipes/incoming-wlr/hwdata.toml b/recipes/incoming-wlr/hwdata.toml
deleted file mode 100644
index e8cc8ced..00000000
--- a/recipes/incoming-wlr/hwdata.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-# hwdata 0.393 — bases de datos de IDs de hardware (pnp.ids, pci.ids, usb.ids) + hwdata.pc. Sin código:
-# sólo datos. Campaña KDE (ADR 0011): lo exige libdisplay-info en tiempo de build (dependency('hwdata')
-# native → pkgdatadir/pnp.ids) y kwin como RUNTIME (find_package(hwdata) TYPE RUNTIME, tabla PNP de EDID).
-# `configure` es un script shell propio (no autoconf); no compila nada.
-name    = "hwdata"
-version = "0.393"
-
-[source]
-tarball = "https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.393.tar.gz"
-sha256  = "322add86944680e99d04468d49de180a7ce0c77fb406f7abde8ab14f2d161051"
-
-[build]
-compiler = "gcc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-flags    = []
-
-[build.phases]
-configure = './configure --prefix=/usr --libdir=/usr/lib --datadir=/usr/share'
-compile   = 'true'
-install   = 'make install DESTDIR=/out'
-
-[deps]
-build = ["pkgconf"]
diff --git a/recipes/incoming-wlr/libdisplay-info.toml b/recipes/incoming-wlr/libdisplay-info.toml
deleted file mode 100644
index 30b2fbc1..00000000
--- a/recipes/incoming-wlr/libdisplay-info.toml
+++ /dev/null
@@ -1,25 +0,0 @@
-# libdisplay-info 0.2.0 — parseo de EDID/DisplayID (libdisplay-info.so). Campaña KDE (ADR 0011): sustrato
-# de kwin (pkg_check_modules(libdisplay-info>=0.2.0) REQUIRED, lectura de EDID de los monitores). Meson.
-# En build necesita pnp.ids: usa dependency('hwdata') native → si no está, cae a /usr/share/hwdata/pnp.ids
-# y meson `files()` EXIGE que exista ⇒ hwdata es dep de build. Sin di-edid-decode (tool) para evitar más deps.
-name    = "libdisplay-info"
-version = "0.2.0"
-license = "MIT"
-
-[source]
-tarball = "https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/0.2.0/libdisplay-info-0.2.0.tar.gz"
-sha256  = "f7331fcaf5527251b84c8fb84238d06cd2f458422ce950c80e86c72927aa8c2b"
-
-[build]
-compiler    = "zig-cc"
-target      = "x86_64-linux-musl"
-link        = "dynamic"
-zig_version = "0.13.0"
-
-[build.phases]
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig meson setup output --prefix=/usr --buildtype=release"
-compile   = "ninja -C output"
-install   = "DESTDIR=/out ninja -C output install"
-
-[deps]
-build = ["meson", "samurai", "python3", "pkgconf", "hwdata"]
diff --git a/recipes/incoming-kde/libdisplay-info.toml b/recipes/libdisplay-info.toml
similarity index 53%
rename from recipes/incoming-kde/libdisplay-info.toml
rename to recipes/libdisplay-info.toml
index 30b2fbc1..8d8a85a8 100644
--- a/recipes/incoming-kde/libdisplay-info.toml
+++ b/recipes/libdisplay-info.toml
@@ -1,3 +1,13 @@
+# ══ PROMOVIDA AL CORPUS DESDE LAS COLAS (2026-09-08) ═══════════════════════════════════════════
+# Existía IDÉNTICA byte a byte en 4 colas de escritorio (cosmic,gnome,kde,wlr), con el MISMO
+# ArtifactHash en todas — verificado con `hammer hash` antes de mover, no deducido del nombre.
+# Sube al corpus por la razón que ya escribió `xkeyboard-config`: una receta resuelve sibling-first
+# y después el catálogo PADRE, nunca una cola hermana, así que **lo que comparten varias imágenes
+# tiene que vivir acá o no lo alcanzan**. Aquí lo comparten 4.
+#
+# A diferencia de aquella, las copias de las colas SÍ se barren en el mismo movimiento: sin copia en
+# el corpus no había dónde caer, y dejarlas sería mantener 4 ficheros que son el mismo hash.
+# Cero rebuilds: el hash no se mueve, sólo cambia de dónde lo resuelve cada consumidor.
 # libdisplay-info 0.2.0 — parseo de EDID/DisplayID (libdisplay-info.so). Campaña KDE (ADR 0011): sustrato
 # de kwin (pkg_check_modules(libdisplay-info>=0.2.0) REQUIRED, lectura de EDID de los monitores). Meson.
 # En build necesita pnp.ids: usa dependency('hwdata') native → si no está, cae a /usr/share/hwdata/pnp.ids
diff --git a/recipes/incoming-gnome/libelogind.toml b/recipes/libelogind.toml
similarity index 82%
rename from recipes/incoming-gnome/libelogind.toml
rename to recipes/libelogind.toml
index d10c1c7e..c1563291 100644
--- a/recipes/incoming-gnome/libelogind.toml
+++ b/recipes/libelogind.toml
@@ -1,3 +1,13 @@
+# ══ PROMOVIDA AL CORPUS DESDE LAS COLAS (2026-09-08) ═══════════════════════════════════════════
+# Existía IDÉNTICA byte a byte en 2 colas de escritorio (cosmic,gnome), con el MISMO
+# ArtifactHash en todas — verificado con `hammer hash` antes de mover, no deducido del nombre.
+# Sube al corpus por la razón que ya escribió `xkeyboard-config`: una receta resuelve sibling-first
+# y después el catálogo PADRE, nunca una cola hermana, así que **lo que comparten varias imágenes
+# tiene que vivir acá o no lo alcanzan**. Aquí lo comparten 2.
+#
+# A diferencia de aquella, las copias de las colas SÍ se barren en el mismo movimiento: sin copia en
+# el corpus no había dónde caer, y dejarlas sería mantener 2 ficheros que son el mismo hash.
+# Cero rebuilds: el hash no se mueve, sólo cambia de dónde lo resuelve cada consumidor.
 # libelogind — la C-ABI `sd-login` que le faltaba a la distro, implementada en arje-compat.
 #
 # QUÉ RESUELVE: mutter (y polkit, gcr, at-spi2-core) exigen un proveedor de logind por pkg-config —
diff --git a/recipes/incoming-cosmic/lua.toml b/recipes/lua.toml
similarity index 83%
rename from recipes/incoming-cosmic/lua.toml
rename to recipes/lua.toml
index 3ff4e6bd..1901653d 100644
--- a/recipes/incoming-cosmic/lua.toml
+++ b/recipes/lua.toml
@@ -1,3 +1,13 @@
+# ══ PROMOVIDA AL CORPUS DESDE LAS COLAS (2026-09-08) ═══════════════════════════════════════════
+# Existía IDÉNTICA byte a byte en 2 colas de escritorio (cosmic,gnome), con el MISMO
+# ArtifactHash en todas — verificado con `hammer hash` antes de mover, no deducido del nombre.
+# Sube al corpus por la razón que ya escribió `xkeyboard-config`: una receta resuelve sibling-first
+# y después el catálogo PADRE, nunca una cola hermana, así que **lo que comparten varias imágenes
+# tiene que vivir acá o no lo alcanzan**. Aquí lo comparten 2.
+#
+# A diferencia de aquella, las copias de las colas SÍ se barren en el mismo movimiento: sin copia en
+# el corpus no había dónde caer, y dejarlas sería mantener 2 ficheros que son el mismo hash.
+# Cero rebuilds: el hash no se mueve, sólo cambia de dónde lo resuelve cada consumidor.
 # lua 5.4.8 — el intérprete y **la librería compartida**, que es lo que hace falta acá.
 #
 # POR QUÉ ENTRA: `wireplumber` —el gestor de sesión de PipeWire, sin el cual PipeWire acepta clientes