diff --git a/docs/26-atuq-envoltorio-gecko.md b/docs/26-atuq-envoltorio-gecko.md index 8c6086fd..11f73f14 100644 --- a/docs/26-atuq-envoltorio-gecko.md +++ b/docs/26-atuq-envoltorio-gecko.md @@ -266,6 +266,28 @@ eso; el modo incógnito es teatro. ⚠ Con la advertencia que el propio SDD de ` **hay que repetir acá, no esconder**: en una máquina con swap sin cifrar, el documento no aplica. Se promete lo que se puede probar. +### 2.ter Dónde vive la fuente de `atuq` — hizo falta un modo de `[source]` nuevo + +Escribir la receta destapó un muro que este documento no había visto: `[source]` era +**obligatoriamente** git o tarball, así que una receta cuyo contenido no viene de upstream sino de +nosotros no se podía ni expresar. Los rodeos eran todos peores — fetchear una fuente que después se +ignora **miente** sobre la identidad del artefacto, y colgar el overlay de un repo aparte obliga al +worker a tener acceso a un repo privado. + +Se agregó **`source.dir`** (commit `54fa4a9`): un árbol dentro del propio repo, hasheado por +**contenido** con `ArtifactHash::of_tree` —que ya existía para verificar bit-reproducibilidad en +Stage 2— y no por ruta. Es la misma disciplina que ya tenían los `patches`, que entran al hash por +bytes. Editar un CSS del overlay mueve el `ArtifactHash`; renombrar el directorio, no. + +Un `.swm` **no** puede llevar una receta derivada, y los cuatro sitios que lo tocan fallan +diciéndolo: el manifiesto es compartible y necesita un puntero resoluble desde fuera. + +**Hecho el 2026-09-05** (commit `aeebb19`): `recipes/atuq.toml` + `recipes/atuq/`, hash +`b3:2d6e4dcf`. La capa son cuatro ficheros —autoconfig, `atuq.cfg`, `chrome/atuq.css`, +`policies.json`— y el CSS se registra como `USER_SHEET` desde autoconfig porque `userChrome.css` +vive en el perfil y exigiría que el usuario prenda una pref: atuq tiene que verse como atuq en el +primer arranque. Falta construirlo: su dep `firefox` está en vuelo. + ## 7. La costura: un host de native messaging en Rust Todo lo del §6 que no es CSS pasa por **un solo mecanismo**: un proceso Rust que habla native @@ -289,7 +311,8 @@ siguiente. | 3 | Construir el `firefox` con LTO (hash `b3:6f2a3b2f`) | el eje de velocidad **y** las extensiones de `atuq` | 2 ✅ | | 3.a | PGO: perfil bajo sway headless, **sellado como artefacto propio** y consumido por hash | la otra mitad de la ganancia | 3 | | 3.b | `wasi-sdk` + `wasi-compiler-rt` ⇒ RLBox encendido | cierra el hueco de seguridad del §3.bis | 2 | -| 4 | **`atuq`: receta derivada + overlay de chrome** | el andamio de todo lo demás | 1 | +| 4 | **`atuq`: receta derivada + overlay de chrome** ✅ v0.1 escrita | el andamio de todo lo demás | 3 | +| 4.b | Branding (`application.ini`, nombre del binario) + re-empaque de `omni.ja` | el chrome de verdad | 4, y ver el artefacto real | | 5 | Host de native messaging (tawasuyu) | los verbos del §6 | 4 | | 6 | `sct` v1 (extensión + testigo) | el diferenciador que nadie tiene | 5 | | 7 | Descargas al CAS | 6.2, y alimenta 6.9 | 5 |