# renaser — Fase 8 :: El compositor teselante Plan de ataque. Para el estado general ver `ROADMAP.md`; para la arquitectura, `ARCHITECTURE.md`. ## El objetivo Hasta la Fase 7, cada aplicación llevaba su región escrita a mano en el Manifiesto de Génesis: cuatro coordenadas fijas (`region_x`, `region_y`, `region_ancho`, `region_alto`). El kernel las leía y componía cada app en su rectángulo, inmóvil — una disposición rígida, decidida en la siembra. La Fase 8 entrega esa decisión a un COMPOSITOR. El kernel deja de colocar las ventanas a mano: las **tesela**. El motor del teselado es `mirada-layout` — el mismo núcleo `no_std` que ordena las ventanas del compositor Wayland de brahman, enlazado por `path` cruzando la frontera de workspace. Una sola lógica de teselado sirve a dos mundos: el escritorio sobre Linux y el kernel bare-metal. ## Sub-fases ### 8a — El compositor tesela — ✅ HECHA - **`compositor.rs`** — enlaza `mirada-layout` y calcula un marco por app con el algoritmo `MasterStack`, dentro del área de pantalla (todo menos la franja superior reservada a la consola). - El kernel **centra** el fotograma natural de cada app dentro de su marco teselado; las apps conservan su tamaño natural y no cambian una instrucción. - `EntradaApp.region_ancho/alto` pasa a significar el tamaño NATURAL del lienzo de la app; `region_x/y` quedan vestigiales — el compositor decide la posición. ### 8b — Teselado interactivo - El teclado cicla en caliente los siete modos de `mirada-layout` (`MasterStack`, `CenteredMaster`, `Spiral`, `Grid`, `Columns`, `Rows`, `Monocle`). - Re-teselar exige re-componer: las apps que sólo pintan en `init` necesitan una señal de redibujado, o el kernel debe conservar su último fotograma para recomponerlo en el marco nuevo. ### 8c — Foco y `Workspace` - Adoptar el `Workspace` de `mirada-layout`: foco, orden-Z, alta y baja de ventanas en vivo. - Una ventana enfocada, resaltada; el teclado mueve el foco y promueve apps al área maestra. ## Estructura de archivos | archivo | estado | rol en la Fase 8 | | --- | --- | --- | | `kernel/src/compositor.rs` | **nuevo (8a)** | teselado con `mirada-layout` | | `kernel/src/consola.rs` | a modificar (8a) | composición centrada en el marco | | `kernel/src/wasm/mod.rs` | a modificar (8a) | `marco` + tamaño natural | | `kernel/src/wasm/env.rs` | a modificar (8a) | validación contra el natural | | `kernel/src/main.rs` | a modificar (8a) | el compositor en el arranque |