π Notification Features
Audio Notifications
- Notification sound plays when new messages arrive from other users
- Uses Web Audio API (no external files, CSP-compliant)
- Smart filtering - only plays for messages from others, not your own
Visual Indicators
- Red dot badges on Channels and Messages sidebar icons for unread messages
- Favicon badge - red dot appears on browser tab when unread messages exist
- Indicators only show when actual unread messages exist
Smart Read Tracking
- Sent messages automatically marked as read for the sender
- Messages auto-marked as read when viewing and scrolled to bottom
- Direct Messages (channel -1) properly excluded from channel unread counts
- Persistent read tracking across sessions
Message Order Fixes
- Preserves original message timestamps when ACKs arrive
- Prevents messages from jumping out of order when receiving quick replies
πΊοΈ Map Tile Fix
Fixed Blank Map Issue
- Fixed Content Security Policy blocking OpenStreetMap tile loading
- Users reported map going blank after zooming with thousands of CSP errors
- Added
*.tile.openstreetmap.orgto CSPconnect-srcdirective
π Full Changelog
Frontend
- Add Web Audio API notification sound for new messages (src/App.tsx)
- Add favicon red dot badge using Canvas API (src/App.tsx)
- Track message arrivals by newest message ID to handle 100-message API limit (src/App.tsx)
- Preserve original timestamps when acknowledging sent messages (src/App.tsx)
- Add red dot indicators on sidebar icons (src/components/Sidebar.tsx)
- Add unread count tracking with CSRF protection (src/contexts/MessagingContext.tsx)
Backend
- Automatically mark sent messages as read (src/server/meshtasticManager.ts)
- Pass userId when sending messages (src/server/server.ts)
- Exclude DMs (channel -1) from channel unread counts (src/services/database.ts)
- Add read_messages table for persistent tracking (src/server/migrations/007_add_read_messages.ts)
- Fix CSP to allow OpenStreetMap tiles (src/server/server.ts)
π Upgrade Notes
No breaking changes. All features are additive and backward compatible.
Database migration 007 will run automatically to add the read_messages table.
Full Diff: v2.6.3...v2.6.4
π MeshMonitor v2.6.4
π¦ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:v2.6.4π§ͺ Testing
β
All tests passed
β
TypeScript checks passed
β
Docker images built for linux/amd64, linux/arm64, linux/arm/v7
π Changes
See commit history for detailed changes.