Idle browser tabs (including mobile viewport) keep a WebSocket open and send keepalive { "type": "ping" } frames. Combined with backend treating empty payloads as new chats (see chat_backend#31), this spawned rogue conversations in prod.
Frontend form validation already requires prompt text, but whitespace-only input could still slip through, and sendMessage did not reject empty text.
Expected
Yup validation trims prompt text (whitespace-only fails)
Submit handlers and sendMessage refuse empty/whitespace messages
## Problem
Idle browser tabs (including mobile viewport) keep a WebSocket open and send keepalive `{ "type": "ping" }` frames. Combined with backend treating empty payloads as new chats (see chat_backend#31), this spawned rogue conversations in prod.
Frontend form validation already requires prompt text, but whitespace-only input could still slip through, and `sendMessage` did not reject empty text.
## Expected
- Yup validation trims prompt text (whitespace-only fails)
- Submit handlers and `sendMessage` refuse empty/whitespace messages
- Tests cover empty `sendMessage` rejection
## Related
- Backend fix: https://git.aimloperations.com/ai_ml_operations/chat_backend/issues/31
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
Idle browser tabs (including mobile viewport) keep a WebSocket open and send keepalive
{ "type": "ping" }frames. Combined with backend treating empty payloads as new chats (see chat_backend#31), this spawned rogue conversations in prod.Frontend form validation already requires prompt text, but whitespace-only input could still slip through, and
sendMessagedid not reject empty text.Expected
sendMessagerefuse empty/whitespace messagessendMessagerejectionRelated