- Closed FRE-4989 as false positive (same ghost run 14acabf9)
- Ghost run has pid unknown, no in-memory handle per FRE-4966 pattern
- FRE-4990 remains the root fix (server-side ghost-run dedup)
- Existing ghost run record keeps spawning new evaluation issues
Co-Authored-By: Paperclip <noreply@paperclip.ing>
- Add getUnreadCount() endpoint to NotificationsServiceProtocol
- Add NotificationUnreadCountResponse model
- Add badgeCount and fetchUnreadCount() to NotificationsViewModel
- Update markAsRead/markAllAsRead to decrement badge count
- Create MainTabView with Home, Challenges, Clubs, Notifications tabs
- Add unread badge on notification tab using .badge() modifier
- Support injected ViewModel in NotificationsView for shared state
- Add badge count tests to NotificationServiceTests
- Fetch unread count on app launch and tab switch
Co-Authored-By: Paperclip <noreply@paperclip.ing>