- Add selectChatMessages: returns messages for channel with memoization
- Add selectUnreadCount: returns unread count for channel
- Add selectTotalUnreadCount: sums all unread counts across channels
- Add selectIsChatWindowOpen: returns window open state
- Add selectActiveChannel: returns active channel ID
- Add selectFetchStatus: returns fetch status for channel
- Add selectSendStatus: returns send status
- Add selectSendError: returns send error message
- All selectors use createSelector from Redux Toolkit for memoization
- All 68 tests passing (GREEN phase), including 15 selector tests
Part of Phase 7 Plan 3 (WebSocket Integration & Selectors)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>