Problem: After page reload, the unread badge on chat button disappeared
even though there were unread messages.
Root cause:
1. unreadCounts was reset to {} on page reload
2. fetchChatHistory was only called when chat window opened
3. By that time, openChatWindow already reset the count to 0
Fix:
1. Fetch chat history when session joins (not just when chat opens)
2. In fetchChatHistory.fulfilled, calculate unread count based on
lastReadAt timestamp from localStorage
3. Only calculate unread if chat window is NOT open for that channel
This ensures the badge shows correct unread count after page reload.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>