atuq: la bóveda estaba SELLADA y en ninguna imagen — y estar en la imagen no es poder abrirla
El §7.novies dio la función por cerrada: las seis etapas del guardián de metal en verde, con el
navegador de verdad y el diálogo a la vista. Lo que seguía abierto era la decisión 1 del §7.sexies
—«en qué imágenes se declaran»—, escrita como NO mientras ninguna app llimphi pudiera pintar. Ese
motivo se cayó el 2026-09-18, así que antes de tomarla se volvió a medir en vez de darla por sabida:
atuq sealed perfiles=[cosmic, gnome, kde, sway]
puriy-costura sealed perfiles=[cosmic, gnome, kde, sway]
boveda sealed perfiles=[]
shuma-pregunta sealed perfiles=[]
`sealed` con `perfiles: []` es sellado ≠ instalado: la lección de `foot`, que targets.toml repetía
QUINCE veces antes de hoy y que igual volvió a morder. Las dos entran a los cuatro perfiles de
escritorio, las dos o ninguna —sin el dueño `vault.match` no ofrece nada; sin el diálogo,
`Command::new` falla y TODO `vault.fill` se deniega—: media bóveda es una que niega todo en
silencio. ~43 M por imagen (22 M + 21 M medidos), contra los ~1,25 GiB que ya lleva el §6.7.
Y al declararlas apareció el hueco de una capa más arriba: la receta instalaba `/usr/bin/boveda` y
nada más, y los lanzadores de los cuatro escritorios leen `/usr/share/applications`. La app viajaría
en la imagen sin existir para quien la usa — la misma forma de fallo que esto viene persiguiendo.
Entra `boveda.desktop`, con tres cosas medidas antes de escribirlo:
· el icono existe: `dialog-password` está en breeze-icons (6), adwaita (1) y cosmic-icons (2). El
cuarto perfil lleva sólo hicolor, que no trae iconos: ahí cae al genérico, que es degradarse;
· lo acepta el `desktop-file-validate` del store, con `atuq.desktop` de control. Deja un hint sobre
`Security`, y las dos formas de callarlo lo cambian por uno PEOR (dos categorías principales ⇒ la
app aparece dos veces en el menú). Se queda como está;
· ⚠ y lo que NO puede hacer: emparejar la ventana con el lanzador. `llimphi_ui::run` no llama nunca
a `with_name` ⇒ winit no manda `set_app_id` y la ventana sale SIN app_id y con el título
"llimphi". Por eso no hay `StartupWMClass`. Vale para toda app llimphi; se arregla en llimphi.
La receta se reconstruyó en el worker con la guarda del §7.quinquies puesta (`### receta verificada
3f1072cc` antes de compilar nada, porque el latido revierte la receta cada media hora y un acierto
de caché sobre la vieja imprime SELLADA en cero segundos): `b3:b0c6adc4` ⇒ `b3:3f1072cc`, 22 M, con
el árbol mirado por dentro y la entrada dentro del artefacto.
Y el guardián de coherencia pasa de CINCO lugares a SEIS: el sexto es `targets.toml` —quién DECLARA
al dueño en la imagen—, con control positivo (`atuq` tiene que estar, o el chequeo está leyendo el
campo equivocado) y su propio control negativo, el tercero. Probado en los dos sentidos: cuatro
perfiles en verde, y `--negative-control-perfil` en rojo.
Abierto, y dicho como lo que es: quién levanta la app con la sesión (atado a la decisión 2 del
§7.sexies, la raíz de las claves), y que el único proveedor de GL de las cuatro imágenes es iris
—mesa-llvmpipe en ningún perfil—, que la bóveda hereda y no agrega.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -92,6 +92,44 @@ install = '''
|
||||
set -e
|
||||
test -x target/release/boveda || { echo "no hay target/release/boveda — ¿cambió el nombre del bin en pacha-boveda-llimphi?" >&2; exit 1; }
|
||||
install -Dm755 target/release/boveda /out/usr/bin/boveda
|
||||
|
||||
# ── EL LANZADOR, Y POR QUÉ ES PARTE DE LA FUNCIÓN Y NO UN ADORNO (2026-09-21) ─────────────────
|
||||
# Sin esta entrada la app viaja en la imagen y **no existe para quien la usa**: los lanzadores de
|
||||
# los cuatro escritorios leen `/usr/share/applications`, y a un binario que nadie lista sólo se
|
||||
# llega escribiendo `boveda` en una terminal. Sería exactamente la forma de fallo que esta receta
|
||||
# existe para cerrar —la función instalada, apagada y en silencio (SDD 26 §7.sexies)— una capa más
|
||||
# arriba: la bóveda declarada en el perfil, la insignia del navegador vacía, y nada que falle.
|
||||
#
|
||||
# `Icon=dialog-password` es nombre del icon naming spec y está MEDIDO en los tres temas que los
|
||||
# perfiles declaran, no supuesto: `breeze-icons` 6 ficheros, `adwaita-icon-theme` 1, `cosmic-icons`
|
||||
# 2. El cuarto perfil (sway) lleva sólo `hicolor`, que por diseño no trae iconos: ahí el lanzador
|
||||
# cae al genérico, que es degradarse, no romperse.
|
||||
#
|
||||
# ⚠ Lo que esta entrada NO puede hacer, y conviene saberlo antes de buscarlo acá: emparejar la
|
||||
# VENTANA con el lanzador. `llimphi_ui::run` no llama nunca a `with_name`, así que winit 0.30.13
|
||||
# sólo manda `set_app_id` `if let Some(name) = attributes.platform_specific.name` ⇒ la ventana sale
|
||||
# **sin app_id**, y con el título `"llimphi"`, que es el default de `App::title` y `BovedaApp` no
|
||||
# sobrescribe. Por eso acá no hay `StartupWMClass`: no habría contra qué emparejarlo. Es de llimphi
|
||||
# —como el muro del §7.septies— y se arregla allá, no acá.
|
||||
mkdir -p /out/usr/share/applications
|
||||
cat > /out/usr/share/applications/boveda.desktop <<'DESKTOP'
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Bóveda
|
||||
Name[en]=Vault
|
||||
GenericName=Gestor de contraseñas
|
||||
GenericName[en]=Password Manager
|
||||
Comment=Tus contraseñas, y quien las pide tiene que preguntarte
|
||||
Comment[en]=Your passwords, and whoever asks has to ask you
|
||||
Exec=boveda
|
||||
Icon=dialog-password
|
||||
Terminal=false
|
||||
Categories=Utility;Security;
|
||||
Keywords=contraseñas;claves;bóveda;passwords;
|
||||
StartupNotify=true
|
||||
DESKTOP
|
||||
chmod 0644 /out/usr/share/applications/boveda.desktop
|
||||
test -s /out/usr/share/applications/boveda.desktop || { echo "boveda.desktop quedó vacío" >&2; exit 1; }
|
||||
'''
|
||||
|
||||
[deps]
|
||||
|
||||
Reference in New Issue
Block a user