Four WebSocket rooms per project keep chat, graph, document, and score in
sync live, backed by Redis so it works across multiple servers, not just
one. Sessions use rotating refresh tokens with reuse detection. If an already-used token gets presented again, the entire session chain gets invalidated, cutting off whoever stole it.
Every one of the 16 AI pipelines has a fallback built in. If a step fails,
the user never gets stuck staring at a dead spinner.