| Flow | Purpose | Frontend | Backend | Primary Risks |
|------|---------|----------|---------|---------------|
| Planner dashboard (mobile) | Load spotlight plan, metrics, and offline signal cards | apps/web/src/modules/planner/pages/DashboardPage.mobile.vue; apps/web/src/modules/planner/composables/useDashboardController.ts; apps/web/src/modules/planner/stores/plannerStore.ts | apps/api/src/modules/planner/planner.service.ts (getDashboardSnapshot) | Cache drift vs IndexedDB data; empty spotlight plan leaves quick actions inert; manual sync must respect offline queue |
| Gamification progress | Update quests/challenges, award rewards, emit events | apps/web gamification entrypoints (store/services) consume Quest/Challenge status responses | apps/api/src/modules/gamification/quest.service.ts; apps/api/src/modules/gamification/challenge.service.ts; apps/api/src/modules/gamification/gamification.controller.ts | Completion not reflected in API responses (fixed); cache invalidation gaps leave stale badges/points |
| Live navigation polling | Poll live sessions, chat, and participants without websockets | apps/web/src/modules/live/services/liveNavigationService.ts | apps/api/src/modules/live/* (session routes, replay/export) | Poller stop conditions must clear timers; auth token reuse vs 401 fallback; session interval respects min 5s |
| Analytics feature usage | Measure feature sessions and active users | - | apps/api/src/modules/analytics/analytics.service.ts | Session window hydration depends on valid timestamps; 'in' filters must stay within 10 item batches |
