## Summary
- Closes #31
- Ignore WebSocket `type: ping` heartbeats so keepalives no longer create conversations or hit title/LLM pipelines
- Reject empty/whitespace user messages in both chat consumers, `PromptSerializer`, and REST conversation prompt POST
## Test plan
- [x] `UserPromptGuardTestCase`, `PromptSerializerTestCase` blank/whitespace cases
- [x] `WebSocketReceiveGuardTestCase` ping ignore + empty message rejection (both WS routes)
- [ ] Deploy to beta; leave idle tab open and confirm no new rogue conversations
- [ ] Confirm normal chat send still works
Related FE: https://git.aimloperations.com/ai_ml_operations/chat_web_app/issues/51
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.
Summary
type: pingheartbeats so keepalives no longer create conversations or hit title/LLM pipelinesPromptSerializer, and REST conversation prompt POSTTest plan
UserPromptGuardTestCase,PromptSerializerTestCaseblank/whitespace casesWebSocketReceiveGuardTestCaseping ignore + empty message rejection (both WS routes)Related FE: ai_ml_operations/chat_web_app#51