Bug Fixes
Fix floating message widget flashing for unauthenticated users
- Hide floating widget on landing page (/)
- Add authChecked gate before rendering messaging widget
- Prevent unauthenticated users from seeing widget during async auth check
- Fix theme dropdown rendering behind navbar
High Priority UX / Architecture Issues
- Fix Supabase realtime channel leak from repeated subscriptions
- Remove isOpen dependency causing duplicate channel subscriptions
- Avoid full conversation/message refetch on every realtime update
- Replace any[] messaging state types with strict TypeScript interfaces
- Add global React error boundary to prevent full app crashes
- Lazy load Monaco editor to reduce initial bundle size
- Replace Socket.io collaborative editing with Yjs CRDT syncing
- Add optimistic UI updates for messaging
- Add pagination to leaderboard queries
- Add rate limiting to /api/problems/submit to protect Judge0 quota
Bug Fixes
Fix floating message widget flashing for unauthenticated users
High Priority UX / Architecture Issues