- What reaches the bell also reaches the devices where the person turned «Avisos en este dispositivo» on, with TaskStream closed: the Notifier sends each new notification encrypted (aes128gcm) and signed with VAPID, and forgets subscriptions the push service dropped (404/410). A failure never blocks the event stream. - The API keeps one subscription per device (push_subscriptions) and exposes the VAPID public key in the notification settings; GraphQL subscribePush/unsubscribePush, REST /me/push-subscriptions. Without VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEY push is off. - The web registers /push-sw.js, a service worker that only shows the notification and opens its ticket on a tap (no caching, served without cache by nginx), and a manifest that makes it installable, which iPhones need for push. - The bell's toggles show their text next to them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
web-tracker-application
Estado del tracker (NgRx Signals con eventos) detrás de facades.
- Import:
@task-stream/web/tracker/application - Capa:
application· Tags:scope:web-tracker,type:application
Contenido
- Facades (lo que se exporta):
ProjectsFacadeyHomeFacade(«Mi trabajo») (raíz) yProjectFacade,BoardFacade,IssueFacade(de ruta, conprovideProjectFacade(),provideBoardFacade(),provideIssueFacade()). Tests enfacades/facades.spec.ts. ExploreFacade(raíz): proyectos públicos, también sin sesión.ProjectFacadetambién da la visibilidad (setPublic) y el borrado (deleteProject, vuelve a la portada; y si otro lo borra, también), y la configuración del proyecto (workflow,saveSettings) y sus estadísticas (loadAnalytics,loadBurnup).- Interno: stores
ProjectsStore,ProjectStore,HomeStore,BoardStore,IssueStorey eventos por origen (*PageEvents,*ApiEvents,*RealtimeEvents). board.reducers.ts: transformaciones puras del tablero (movimiento optimista, cambios en vivo por versión).- Puerto
Notifications.
Patrón de eventos: Cliente web.
Comandos
npx nx lint web-tracker-application
npx nx test web-tracker-application # Vitest
Reglas de dependencia entre capas: Arquitectura.