The ticket page only refreshed when the live update arrived; a dropped or slow socket left an edit, a new subtask or a comment unseen until the page was reloaded. After each change made there, it now asks for the ticket, its comments and its subtasks again (twice, since the API projects its read model a moment after answering). "Seguir" and "Editar" are two matching buttons, side by side and level with the title's first line (under it on narrow screens), instead of a large button with a stray arrow and a loose grey pencil. 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.