SDD 26 §6.10: la cadena de notificaciones, probada desde la página web

Con `--via-atuq` el emisor es `new Notification(...)` dentro del navegador, o sea
las cinco piezas: libxul dlopeando libnotify.so.4 (invisible para cualquier
auditor de ELF), D-Bus, la activación y dunst dibujando. Veredicto por el
`onshow` del motor: MOSTRADA #33 con el .service, «ERROR al mostrar» sin él.

Y deja probado de paso que en el proceso de atuq la GLib NO se duplica — usa la
cadena `-shared` que arrastra su GTK3, la misma contra la que enlaza
libnotify.so.4. El que la duplicaba era dunstify.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NNFzrqFBEt6W7maGJKf2Xs
This commit is contained in:
Sergio
2026-09-07 18:37:40 +00:00
co-authored by Claude Opus 5
parent ec45c3fa97
commit e31a36d5a4
+12
View File
@@ -593,6 +593,18 @@ de sesión, manda un `notify-send` y **deja que el bus active el daemon solo**
recorre una página web en `atuq`—, y mide un diff de píxeles antes/después: 14.832 cambiados con el
`.service` puesto, 0 sin él. Evidencia en `docs/evidencia/dunst-sway-notificacion-2026-09-07.png`.
Y la cadena se cerró hasta el final, que es donde vive la promesa: con `--via-atuq` el emisor no es
`notify-send` sino **una página web dentro del navegador**. Ahí se ejercitan las cinco piezas —
`new Notification(...)``libxul` haciendo `dlopen("libnotify.so.4")` (que no es NEEDED de ningún
ELF, o sea invisible para cualquier auditor) → D-Bus → activación → dunst dibujando—, y el veredicto
es el `onshow` del motor, no el diff de píxeles: con el `.service` puesto llega a `MOSTRADA #33`, sin
él el motor dice `ERROR al mostrar` y no se dibuja nada. Evidencia en
`docs/evidencia/atuq-notificacion-web-sway-2026-09-07.png`.
Vale la pena decir qué prueba eso de más: que en el proceso de `atuq` **la GLib no se duplica**. El
navegador usa la cadena `-shared` (la que arrastra su GTK3) y `libnotify.so.4` enlaza esa misma, así
que el `dlopen` no repite GObject. El que sí lo repetía era `dunstify`, y por eso no se shipea.
⚠ De paso apareció otra media función, y ésta toca a `libnotify` directamente: **`dunstify`
segfaultea hasta en `--help`** porque mezcla la GLib ESTÁTICA del corpus con la COMPARTIDA que
arrastra `libnotify.so.4` — dos copias de GObject en un proceso. No se shipea; el emisor es