runbook cosmic: cabecera al día y la regla de copiar entre colas, corregida donde estaba de más
Decía «copiar es gratis de verdad, no casi». La regla honesta es: gratis SÓLO si toda la clausura transitiva resuelve a lo mismo. Se cumple con libdisplay-info, hwdata y nasm; no con pipewire. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +16 −11
- docs/runbooks/cosmic-desktop.md +16 −11
diff --git a/docs/runbooks/cosmic-desktop.md b/docs/runbooks/cosmic-desktop.md
index 51e3f076..30c877ff 100644
--- a/docs/runbooks/cosmic-desktop.md
+++ b/docs/runbooks/cosmic-desktop.md
@@ -1,7 +1,8 @@
# Runbook — COSMIC, el cuarto escritorio
-Estado al 2026-08-03: **campaña abierta.** Tres piezas selladas (`cosmic-session`, `cosmic-icons`,
-`cosmic-bg`) y el compositor en construcción. Este documento se escribe mientras se hace, no después.
+Estado al 2026-08-03: **el gate está pasado.** `cosmic-comp` —el compositor, la pieza de la que todo
+lo demás es cliente— **compila y está sellado**, junto con `cosmic-session`, `cosmic-icons`,
+`cosmic-bg` y `cosmic-idle`. Falta arrancarlo. Este documento se escribe mientras se hace, no después.
COSMIC es el escritorio de System76, en Rust sobre **smithay** (compositor) e **iced/libcosmic**
(clientes). Es el cuarto de hammer, tras [mirada](mirada-usb-nvidia.md),
@@ -42,10 +43,14 @@ arranca y no se entiende consigo mismo — que es mucho más caro de diagnostica
Las deps se resuelven **hermano → padre**: desde `incoming-cosmic/` se ven las recetas de
`recipes/`, pero **no** las de `incoming-gnome/` ni `incoming-kde/`. Por eso `libdisplay-info` y
-`hwdata` entran copiadas. Y copiar es gratis de verdad, no «casi»: el ArtifactHash no depende de la
-ruta de la receta, así que un fichero idéntico con deps que resuelven a lo mismo da **el mismo hash**
-⇒ cache hit sobre el artefacto que ya existe. Se verificó antes de copiar (`b3:260f0519`,
-`b3:bdc36cf9`), no después.
+`hwdata` entran copiadas.
+
+**Copiar es gratis sólo si TODA la clausura transitiva resuelve a lo mismo.** El ArtifactHash no
+depende de la ruta de la receta, así que un fichero idéntico *cuyas deps resuelven igual* da el mismo
+hash ⇒ cache hit sobre el artefacto que ya existe. Se cumplió con `libdisplay-info`, `hwdata` y
+`nasm`, y se verificó con `hammer hash` **antes** de copiar (`b3:260f0519`, `b3:bdc36cf9`,
+`b3:33383070`), no después. Dónde deja de cumplirse —y por qué importa— está en la sección de
+`cosmic-settings-daemon`, más abajo.
## Qué levanta la sesión, y por lo tanto el orden de ataque
@@ -71,6 +76,11 @@ Más `cosmic-settings-daemon` y `xdg-desktop-portal-cosmic` fuera de esa lista.
| `cosmic-panel` · `cosmic-launcher` · `cosmic-app-library` · `cosmic-workspaces-epoch` · `cosmic-notifications` | receta escrita, sin construir | — |
| `cosmic-settings-daemon` | ni receta | — |
+**El orden no es el de la lista de arranque.** `cosmic-bg` va antes que el panel a propósito: habla
+Wayland con `smithay-client-toolkit` y **no toca libcosmic ni iced**, mientras que panel, launcher,
+osd y workspaces son todos clientes de iced. Con el fondo sellado, «pinta el fondo pero no el panel»
+separa la capa de UI del transporte; sin él, las dos preguntas llegan juntas.
+
### `cosmic-settings-daemon`: por qué queda al final y NO se resuelve copiando
Es el único con cadena propia. Su workspace incluye `audio-server` como dep de path **no opcional**,
@@ -96,11 +106,6 @@ imagen escritorio-gnome**. La decisión correcta no es de esta campaña: es *dó
corpus*, y es una decisión de catálogo, no de COSMIC. Hasta entonces, el escritorio arranca sin
settings-daemon —se pierden brillo, tema automático y perfiles de audio, no el escritorio—.
-**El orden no es el de la lista de arranque.** `cosmic-bg` va antes que el panel a propósito: habla
-Wayland con `smithay-client-toolkit` y **no toca libcosmic ni iced**, mientras que panel, launcher,
-osd y workspaces son todos clientes de iced. Con el fondo sellado, «pinta el fondo pero no el panel»
-separa la capa de UI del transporte; sin él, las dos preguntas llegan juntas.
-
## 🚪 EL GATE PASADO: cosmic-comp compila (2026-08-03)
`b3:b8abc52f`, 51 min 39 s de cargo con `CARGO_BUILD_JOBS=1` y `lto = "fat"`. **A la primera**, salvo