We were filtering component geometry websocket requests via user pk, which made diagrams from different tabs for the same user not be in sync with each other.
Now the frontend generates a temporary client_ulid so it can know to ignore messages from the same tab (movement gets laggy if we don't), but not from other tabs from the same user.
We were filtering component geometry websocket requests via user pk, which made diagrams from different tabs for the same user not be in sync with each other.
Now the frontend generates a temporary client_ulid so it can know to ignore messages from the same tab (movement gets laggy if we don't), but not from other tabs from the same user.