Bug Description
The application uses WebSocket events for real-time presence updates while also running periodic HTTP polling as a fallback mechanism.
Under certain network conditions, an older polling response can arrive after a newer WebSocket event has already updated the client state. When this occurs, stale polling data overwrites the newer presence information and causes the UI to display incorrect user activity.
This can result in active developers appearing offline or inactive even though a more recent WebSocket update has already been received.
Steps to Reproduce
- Open the city view with presence indicators enabled.
- Start a coding session so a WebSocket presence update is received.
- Simulate network latency on the polling endpoint.
- Allow an older polling request to resolve after the WebSocket update.
- Observe that the presence state reverts to outdated information.
Expected Behavior
Newer presence updates should always take precedence over older data.
Polling responses should not overwrite more recent WebSocket state if the client has already received a newer update.
Screenshots / Screen Recordings
The issue appears to occur because polling and WebSocket updates share the same state without a mechanism to determine which update is newer.
A timestamp or version-based validation strategy could help prevent stale polling responses from overwriting recent WebSocket updates.
I would be happy to work on this issue under GSSoC 2026 if it is confirmed and assigned.
Browser
Chrome
Acknowledgements
Bug Description
The application uses WebSocket events for real-time presence updates while also running periodic HTTP polling as a fallback mechanism.
Under certain network conditions, an older polling response can arrive after a newer WebSocket event has already updated the client state. When this occurs, stale polling data overwrites the newer presence information and causes the UI to display incorrect user activity.
This can result in active developers appearing offline or inactive even though a more recent WebSocket update has already been received.
Steps to Reproduce
Expected Behavior
Newer presence updates should always take precedence over older data.
Polling responses should not overwrite more recent WebSocket state if the client has already received a newer update.
Screenshots / Screen Recordings
The issue appears to occur because polling and WebSocket updates share the same state without a mechanism to determine which update is newer.
A timestamp or version-based validation strategy could help prevent stale polling responses from overwriting recent WebSocket updates.
I would be happy to work on this issue under GSSoC 2026 if it is confirmed and assigned.
Browser
Chrome
Acknowledgements