1# app-bus — bus de eventos in-proc para apps Llimphi23*Read this in English: [README.md](README.md).*
45Bus de **publish/subscribe** tipado, síncrono y en memoria, para coordinar apps
6dentro del mismo proceso. Cubre tres familias de eventos transversales: **foco**
7(qué app/ventana lo tiene), **navegación** (abrir/cerrar/enfocar una app o ruta)
8y **notificaciones** efímeras.
910## Qué expone1112- `AppBus` — handle compartible (`Clone`, internamente `Arc<RwLock<…>>`).
13- `Event` — enum transversal: `FocusChanged` / `Navigate` / `CloseApp` / `Notify`.
14- `NotifyLevel` — `Info` / `Warn` / `Error`.
15- `Subscription` — guard RAII: al soltarlo se cancela la suscripción.
16- `publish(Event)` entrega de forma síncrona a todos los suscriptores; entrega
17 anidada si un callback publica desde su propio handler.
1819## No-objetivos2021- No es un bus interproceso ni de red (eso es Akasha / app-channel).
22- No persiste eventos ni garantiza entrega tras reinicio.
23- No ordena por prioridad.
2425## Estado (2026-05-31)2627### Hecho28- Bus pub/sub completo: `publish`, `subscribe`, cancelación por guard RAII.
29- Enum `Event` con foco/navegación/cierre/notificaciones.
30- Consumido por `launcher-llimphi` (dispara navegación/lanzamiento).
3132### Pendiente33- Adaptador multiproceso (hoy estrictamente in-proc).
34- Entrega diferida / cola (hoy reentrancia anidada síncrona).
35- Filtrado por tipo de evento en `subscribe` (hoy el callback filtra).
3637## Lugar en el repo3839`shared/app-bus` — canal in-proc de grano fino. El plano de control a más alto
40nivel es `shared/sandokan` (ver su SDD.md).
LEEME.md
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.