forked from retoor/snek
- Add async query method to BaseMapper yielding dict records from raw SQL - Add async query method to BaseService delegating to mapper.query - Wrap ws.send_json in try/except to prevent broadcast failure on disconnected clients - Fix localhost WebSocket URL to include port 8081 - Include chat-window.js script in web.html template - Replace static chat-area markup with custom <chat-window> element - Implement get_messages RPC method fetching last 30 channel messages with user nicknames