FireTech-Message-server / CHANGELOG-v2.2.5.md
Dhurgh's picture
fixed infinite loop and memory leak
55a57c5
|
Raw
History Blame Contribute Delete
7.79 kB
# Changelog - Version 2.2.5
## Major Mobile UI Overhaul
### Mobile WhatsApp/Telegram-Style Layout
- **Bottom Navigation Bar**: Added a modern bottom nav bar for mobile devices with 5 key sections:
- Chats
- Communities
- Groups
- Friends
- Settings
- **Full-Screen Chat Area**: Mobile phones now show chat in full screen with all controls accessible
- **Responsive Sidebar**: Sidebars slide in from left with overlay backdrop on mobile
- **Touch-Optimized**: All buttons and controls properly sized for mobile interaction
- **No More Hidden Controls**: All features (messages, communities, left panel options) now visible on phone
## Call Stability Improvements
### TURN Server Integration
- **Added Public TURN Servers**: Integrated openrelay.metered.ca TURN servers for better NAT traversal
- **Multiple Connectivity Options**:
- TCP on port 443
- UDP on port 80
- TCP fallback for restricted networks
- **Mobile Network Support**: Calls now work reliably on mobile carrier networks
- **15-Second Grace Period**: Calls don't disconnect immediately on network hiccups
- **Visual Feedback**: Shows "Connection unstable, trying to reconnect..." during temporary disconnections
- **ICE Candidate Pool**: Increased to 10 for faster connection establishment
### Enhanced Call States
- **Connected Notification**: Shows "Call connected!" when peer-to-peer link established
- **Reconnection Logic**: Automatic reconnection attempts during brief disconnects
- **Better Error Messages**: Clear feedback when calls fail vs. temporary network issues
## Pinned Chats Feature
### Pin Your Important Conversations
- **Pin/Unpin Button**: New thumbtack button in chat header to pin/unpin current chat
- **Visual Indicators**:
- Pinned chats show with colored background
- Blue left border on pinned items
- Thumbtack icon beside pinned chat name
- **Pinned Section**: Separate " PINNED" section at top of chat list
- **Persistent**: Pins saved to localStorage and survive app restarts
- **Works For All Chat Types**: Pin DMs, communities, and groups
## Clickable Notifications
### Navigate Directly from Notifications
- **Click to Open Chat**: Tap any notification to jump directly to that conversation
- **Works on Desktop & Mobile**: Consistent experience across devices
- **Visual Cue**: Notifications show "Click to open" hint
- **Auto-Close Sidebars**: On mobile, tapping notification opens chat and closes any open modals
- **Context-Aware**: Different notification types (DM, community, group) open the correct chat view
### Notification Types
- **DM Notifications**: "New message from [friend]: [preview]" - click to open DM
- **Community Notifications**: "New message in Community '[name]' from [user]: [preview]"
- **Group Notifications**: "New message in Group '[name]' from [user]: [preview]"
## Horizontal Reactions Layout
### Better Reaction Display
- **Horizontal Alignment**: Reactions now flow left-to-right instead of stacking vertically
- **Proper Wrapping**: Reactions wrap to next line when needed
- **Better Spacing**: 6px gap between reaction items for cleaner look
- **Touch-Friendly**: Larger tap targets on mobile devices
## Community Roles System (Basic)
### Role Foundation
- **Leader Role**: Community creator/admin designation (future backend support)
- **Member Role**: Regular community participant
- **Visual Role Indicators**: Role badges beside usernames (placeholder)
- **Permissions Framework**: Groundwork for role-based permissions:
- Leaders can change community name/image (future)
- Leaders can assign/remove member roles (future)
- Members have standard chat permissions
*Note: Full role system requires backend implementation - this version provides the UI foundation*
## Enhanced UI & Navigation
### Visual Improvements
- **Smoother Transitions**: Better animations for sidebar open/close
- **hover Effects**: Enhanced hover states on all interactive elements
- **Mobile-Optimized Header**: Compact header on phones with essential buttons only
- **Better Contrast**: Improved text readability in all themes
- **Consistent Spacing**: Unified padding and margins across the app
### Navigation Enhancements
- **Sidebar Overlay**: Dark overlay when sidebar open on mobile (tap to close)
- **Auto-Close Menus**: Modals and sidebars auto-close when opening chat on mobile
- **Breadcrumb-Style Headers**: Chat headers now clearly show the context
- **Faster Chat Switching**: Optimized chat loading and switching performance
## Bug Fixes
### Mobile Fixes
- Fixed: Messages container now properly scrollable on all mobile devices
- Fixed: Input area stays accessible above mobile keyboard
- Fixed: Bottom nav doesn't cover chat input
- Fixed: Proper viewport height calculation (100dvh support)
- Fixed: Touch scrolling on iOS devices
### Call Fixes
- Fixed: Calls disconnecting after 5-10 seconds on mobile
- Fixed: "Failed" state triggers too quickly on network fluctuations
- Fixed: Users couldn't hear each other (remains from v2.2.4 fix)
- Fixed: Connection state not properly tracked during handshake
### UI Fixes
- Fixed: Pin button state updates when switching chats
- Fixed: Notification sounds play on correct events
- Fixed: Mobile sidebar animation glitches
- Fixed: React list overflow on narrow screens
## 📊 Technical Details
### Version Info
- **Frontend**: v2.2.5
- **Backend**: v2.2.5 (auto-reads from package.json)
- **Cache Buster**: Updated to prevent old JS/CSS caching
### Browser Compatibility
- Chrome/Edge (Desktop & Mobile)
- Firefox (Desktop & Mobile)
- Safari/iOS Safari
- Samsung Internet
- Opera Mobile
### Mobile Breakpoints
- **< 480px**: Full mobile mode with bottom nav
- **480-768px**: Tablet mode with collapsible sidebar
- **> 768px**: Desktop mode with persistent sidebars
## Deployment Notes
### Update Steps
1. ` git pull` or download latest code
2. `npm install` (no new dependencies)
3. `npm run dev` for local testing
4. `railway up` or your deployment command for production
### Rollback Plan
- Previous stable: v2.2.4
- To rollback: `git checkout v2.2.4` or restore backup
## Known Limitations
### Current Version
- Community roles are UI-only (backend integration pending)
- Role permissions not enforced server-side
- TURN servers are public (consider private TURN for production)
- Desktop notifications require user permission grant
- Some features may need manual localStorage clear if upgrading from older versions
### Future Enhancements
- Server-side role management
- Database-backed community metadata
- Private TURN server option
- Push notifications for mobile browsers
- Community/group image upload
- Advanced role permissions (kick, mute, ban)
- Community settings panel in UI
## Testing Recommendations
### Critical Tests
1. **Mobile Layout**: Open on actual phone, verify all buttons visible
2. **Video Calls**: Test mobile-to-mobile call for 1+ minute
3. **Pinned Chats**: Pin several chats, close app, reopen - pins should persist
4. **Notifications**: Send message while in different chat, click notification
5. **Reactions**: Add multiple reactions to message, verify horizontal layout
6. **Bottom Nav**: Tap each nav item on mobile, ensure sections open correctly
### Test Accounts
- Recommended: Test with 2 phone accounts on different networks (WiFi + mobile data)
- Test video calls both on same WiFi and across networks
- Test notifications on both locked and unlocked screens
## Support
If you encounter issues:
1. Check browser console for errors (F12)
2. Clear localStorage: `localStorage.clear()` in console
3. Hard refresh: Ctrl+Shift+R (or Cmd+Shift+R on Mac)
4. Check network tab for failed requests
5. Verify WebRTC support: https://test.webrtc.org/
---
**Enjoy the new mobile-friendly experience! **