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 1572Shell 203Rust 109Markdown 993728 Definiciones

atuq: el navegador SÍ respeta el xulstore — y el `debugfs` miente si la VM se acaba de matar

Dos cierres del mismo día, los dos medidos por la otra sesión del frente sobre la imagen:

· la #3 queda contestada: con perfil sano el navegador pinta a +195 s y pide
  `set_window_geometry(1332, 852)` —el tamaño que el `xulstore` recuerda— y acata el
  `configure(1280, 692)` del maximizado. Ninguna cifra es 1152×720, o sea que `browser-init.js` no
  calculó nada: es lo correcto en un perfil que ya recuerda. Y de paso sale el discriminador barato
  entre las dos ventanas: el navegador pide `min_size` 638×120 y el diálogo 117×37;
· y una corrección de MÉTODO a lo que este mismo documento recomendaba ayer: leer el perfil con
  `debugfs` sobre el raw es válido con la imagen apagada, NO para leer lo que dejó un kill. Con el
  journal sucio `debugfs` se planta, con `-c` lee el estado pre-journal y ahí `prefs.js` figura de
  0 bytes — indistinguible de «el navegador borró el perfil», que es más grave y falso.

También queda escrito que la corrida que pinta LIMPIA el contador de caídas (el mecanismo visto
desde el otro lado: explica el «se arregla sola» sin hipótesis) y que una corrida sana no ensucia
el `xulstore`.

8880ce7a7be94894aad5ac0487ea710c5693c30a · por Sergio · (hace 1 mes) · padre d52824efe · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +24 −4

diff --git a/docs/26-atuq-envoltorio-gecko.md b/docs/26-atuq-envoltorio-gecko.md
index 6589e7b2..1d9c94a5 100644
--- a/docs/26-atuq-envoltorio-gecko.md
+++ b/docs/26-atuq-envoltorio-gecko.md
@@ -2087,6 +2087,15 @@ partición sin montarla y sin root:
     debugfs -R "dump /root/.config/mozilla/firefox/<id>.default-default/prefs.js /tmp/prefs.js" \
       "/mnt/cosecha/takana-cosmic-qemu.img?offset=$((264192*512))"
 
+⚠ **Y esa lectura MIENTE si la VM se acaba de matar, con una forma peligrosa** (medido el 2026-09-15
+por la otra sesión del frente): el ext4 del guest queda con el journal sucio, `debugfs` se planta con
+«Block bitmap checksum does not match» y con `-c` abre pero lee el estado **PRE-journal** — ahí
+`prefs.js` figura de **0 bytes** con la fecha de la corrida anterior. Un `prefs.js` vacío leído así se
+ve idéntico a «el navegador borró el perfil», que es un diagnóstico mucho más grave y falso. La
+lectura buena es **desde adentro**, después de que el mount replaye el journal: para eso están los
+campos `recent_crashes_antes` / `_despues` del arnés. `debugfs` sirve para mirar el estado *previo*
+con la imagen apagada, no para leer lo que dejó un kill.
+
 ##### La sospecha del §6.10.duodecies era falsa: Gecko SÍ ve la pantalla, 1280×800
 
 Se midió agregándole `WidgetScreen:5` al `MOZ_LOG` —el módulo que registra qué monitores arma el
@@ -2193,10 +2202,21 @@ con el árbol de fuentes, pero con la mitigación ya puesta. Dos consecuencias:
    por lo tanto re-sella el artefacto (~340 M de store y todas las sondas a repetir);
 2. **rehacer la serie de la tasa con perfil sano**: hoy hay UNA corrida limpia (+123 s) y el resto
    está marcado. «Cuánto tarda en pintar» vuelve a estar sin medir, y ahora se puede medir bien;
-3. **y la pregunta vieja sigue abierta con otra forma**: cuando el navegador abre ventana de verdad,
-   ¿respeta el `sizemode=maximized` de 1332×852 que el `xulstore.json` de ese perfil recuerda? Para
-   eso está `--xulstore ANCHOxALTO`, que corre una segunda fase en el MISMO arranque (mismo
-   compositor, misma carga) en vez de comparar dos arranques distintos.
+3. ~~¿respeta el `sizemode=maximized` que el perfil recuerda?~~ **CONTESTADA el mismo día: sí.** Con
+   perfil sano el navegador pintó a +195 s y el protocolo trae las dos cifras, cada una en su papel:
+   `set_window_geometry(26, 23, 1332, 852)` —el tamaño normal que restaura del `xulstore`— y
+   `configure(1280, 692)` acatado, que es el área de trabajo por el maximizado. Ninguna es 1152×720
+   ⇒ `browser-init.js` no calculó nada, que es lo correcto en un perfil que ya recuerda.
+
+   **De ahí sale el discriminador barato entre las dos ventanas**, y vale para cualquier corrida
+   futura: el navegador pide `set_min_size(638, 120)` —después (690, 172)— y
+   `set_max_size(16332, 16332)`; el diálogo pide `set_min_size(117, 37)` y `set_max_size(348, 16332)`.
+   Con mirar el `min_size` se sabe cuál abrió, sin leer el título.
+
+   Dos cosas más de esa corrida: `recent_crashes_despues` salió **ausente** —la corrida que pinta
+   LIMPIA el contador, que es el mecanismo visto desde el otro lado y explica el «se arregla sola»
+   sin ninguna hipótesis— y el `xulstore` quedó igual: **una corrida sana no ensucia lo que el perfil
+   recuerda**.
 
 ### 6.11 Y ahora la pregunta que faltaba: ¿REPRODUCE? (2026-09-07)