b96cf8d07d
Deploy PROD / deploy (push) Successful in 25s
WebSocket nie ma historii: zdarzenie wyslane, gdy panel byl rozlaczony, przepada bezpowrotnie. Panel wracal wiec ze stanem sprzed zerwania i pokazywal go jako aktualny. Zdarzylo sie to realnie: backend zrestartowal sie przy wdrozeniu, uczestnik poprosil o glos w czasie, gdy panel byl rozlaczony, a prowadzacy widzial "Nikt nie prosi o glos" przy zgloszeniu czekajacym juz kilkadziesiat sekund. Zgloszenie pojawilo sie dopiero po odswiezeniu strony. Objaw myli, bo panel wyglada na dzialajacy, a jedyna wskazowka jest znikniecie znacznika "polaczono". Rozlaczenie nie jest sytuacja wyjatkowa: wystarczy restart backendu, chwilowa utrata sieci albo uspienie laptopa. `reconnectDelay` wznawial polaczenie, ale nikt nie dociagal tego, co umknelo w miedzyczasie. `onConnect` odswieza teraz kolejke glosu, czat z pytaniami oraz tryby mikrofonu i wideo. Przy pierwszym polaczeniu jest to zapytanie nadmiarowe, przy kazdym nastepnym jedyne zrodlo prawdy. `refetch` sa pominiete w zaleznosciach efektu swiadomie: TanStack Query daje je stabilne, a dopisanie ich przelaczaloby WebSocket przy kazdym odswiezeniu danych, czyli powodowalo dokladnie ten problem, ktoremu ta zmiana zapobiega. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>