Files
sergio 3dc85ebdcd feat: mirada standalone — compositor Wayland + WM sobre Llimphi (build magro)
Stack de display extraído del monorepo: compositor teselante (Cuerpo smithay
+ Cerebro WM agnóstico), greeter PAM, portal XDG, CLI de control. Llimphi se
consume por git desde su repo publicado; las hojas compartidas (format,
auth-core, rimay-localize, wawa-config, app-bus) y el widget menubar van
vendorizados. Sin el asistente IA (pluma-llm) ni la barra web wasm — el
compositor no los necesita. cargo check --workspace pasa (18 crates, 0 warn).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 11:01:49 +00:00

1.5 KiB

app-bus — bus de eventos in-proc para apps Llimphi

Bus de publish/subscribe tipado, síncrono y en memoria, para coordinar apps dentro del mismo proceso. Cubre tres familias de eventos transversales: foco (qué app/ventana lo tiene), navegación (abrir/cerrar/enfocar una app o ruta) y notificaciones efímeras.

Qué expone

  • AppBus — handle compartible (Clone, internamente Arc<RwLock<…>>).
  • Event — enum transversal: FocusChanged / Navigate / CloseApp / Notify.
  • NotifyLevelInfo / Warn / Error.
  • Subscription — guard RAII: al soltarlo se cancela la suscripción.
  • publish(Event) entrega de forma síncrona a todos los suscriptores; entrega anidada si un callback publica desde su propio handler.

No-objetivos

  • No es un bus interproceso ni de red (eso es Akasha / app-channel).
  • No persiste eventos ni garantiza entrega tras reinicio.
  • No ordena por prioridad.

Estado (2026-05-31)

Hecho

  • Bus pub/sub completo: publish, subscribe, cancelación por guard RAII.
  • Enum Event con foco/navegación/cierre/notificaciones.
  • Consumido por launcher-llimphi (dispara navegación/lanzamiento).

Pendiente

  • Adaptador multiproceso (hoy estrictamente in-proc).
  • Entrega diferida / cola (hoy reentrancia anidada síncrona).
  • Filtrado por tipo de evento en subscribe (hoy el callback filtra).

Lugar en el repo

shared/app-bus — canal in-proc de grano fino. El plano de control a más alto nivel es shared/sandokan (ver su SDD.md).