Commit Graph

7 Commits

Author SHA1 Message Date
ameer
b8e29e9b1e fix(room): widen WS handler exception scope to JSONDecodeError + RuntimeError
A single malformed JSON message (or a "WebSocket is not connected" race
on disconnect) was killing the per-client handler with an uncaught
exception in the ASGI app. The surrounding try/except only caught
WebSocketDisconnect, so the server would log a stack trace and the
client would silently drop.

Wrap receive_json() to catch JSONDecodeError, send a structured
{"type":"error","code":"bad_message"} ack, and continue. Widen the
outer except to (WebSocketDisconnect, RuntimeError) so disconnect
races on send/receive after close exit the handler cleanly instead
of bubbling up the ASGI stack.

Both student_ws and instructor_ws hardened in parallel. 31/31 pytest
suite still passes; this fixes the recurring fuzz-scenario warn and
the cycle-187-style cascade observed in the stress loop.
2026-05-02 17:31:25 +08:00
ameer
63a03c0367 Add required test suite and websocket fixes 2026-05-02 03:08:48 +08:00
ameer
81e8173fb9 Add API routes and websocket room manager 2026-05-02 02:59:34 +08:00
ameer
a02f735c26 Add signed cookie auth 2026-05-02 02:59:34 +08:00
ameer
a4061331e5 Add scoring and pool validation 2026-05-02 02:59:34 +08:00
ameer
f689b8f297 Add configuration and database core 2026-05-02 02:59:34 +08:00
ameer
f5ac80a7a5 Scaffold project layout 2026-05-02 02:54:34 +08:00