SDD 26 §2.ter: la fuente de atuq vive en el repo, y eso exigió un modo de [source] nuevo
El documento daba por hecho que la receta derivada se podía escribir con lo que hammer ya tenía. No: `[source]` era obligatoriamente git o tarball. Queda escrito el muro, por qué los rodeos eran peores (fetchear una fuente que se ignora miente sobre la identidad; un repo aparte obliga al worker a leer algo privado) y la salida — `source.dir`, hasheado por contenido con el `of_tree` que ya existía para Stage 2. Y el estado real del plan: la unidad 4 tiene su v0.1 escrita, con el branding y el re-empaque de omni.ja separados como 4.b porque los dos necesitan mirar el artefacto que `firefox` todavía no selló.
This commit is contained in:
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user