Zapobiegaj ruchowi rzędów stołu i przerysowywkę w wyborze pola wyboru checkbox
- Wyłącz animateRows, aby zapobiec ruchowi wizualnemu po wybraniu wierszy - Aktualizacje stanu wsadów w onSelectionChanged using requestAnimationFrame - Zaiste ...
Zmień ikonę statusu Grim z raven.svg na raven.ico
- Aktualizacja ścieżki icon z /icon/raven.svg do /icon/raven.ico - Przechowywać czerwony filtr koloru (ef4444) nałożonego na ikonę - Rozmiar ikony pozostaje 18p...
Upewnij się, że ikona raven.svg jest poprawnie wyświetlana dla statusu Grim
- Zweryfikuj ścieżkę /icon/raven.svg poprawnie odwołuje się do publicznego/icon/raven.svg - Dodaj flex wyświetlacza, aby zapewnić prawidłowe renderowanie - Filt...
Napraw pionowe wyrównanie kolumny styk i dodaj pola wyboru do pinowanych wierszy
- Dodaj wysokość: 100% i uzasadnićTret: środek do kolumny styku do pionowego wyrównania środkowego - Ręczne dodawanie pola wyboru do wejścia do IdRenderer, aby ...
Popraw odstęp między polami kontaktowymi, wyrównanie statusu i przypięte wiersze
- Zmniejsz lukę między imieniem i e-mailem w polu kontaktowym z 0,25 do 0 (z korektami liniowymi) - Vertically dostosuj zawartość pola stanu do środka za pomocą...
Pionowocentra pilna odznaka w kolumnie kontaktowe
- Zmień alignPozy z "flex-start" na "centrum" dla wyrównania pionowego - Usuń mtt: 0.25 margin-top, ponieważ nie jest już potrzebny przy wyrównaniu środkowym
Rozwiązy błędy ESLint w LeadManager
- Zmiana "nie w przefiltrowaniu" na "konst filtrowany" (prefer-const) - Zamień "dowolne" typy na odpowiedni interfejs PinnedLead - Usuń nieużywany import PushPi...
Przywracanie funkcji przeciągania połączenia między elementami zadań
- Naprawiono funkcję startu, aby poprawnie zaakceptować odpowiedźIndex parametr - Dodano renderowanie SVG dla linii połączeń (zarówno istniejących, jak i ciągni...
Wyczyj błąd w typie skryptu dla reag-draggable nodeRef
- Aktualizacja nodeRefs Typ mapy do zaakceptowania RefObject-HTMLDivElement | null> - Dodano dochodzenie w zakresie pisania w nodeRef do komponentu Draggable - ...
Resolve find findDOMNode na stronie zadań dla React 19 kompatybilność
- Dodano rekwizyt w nodeRef do reagowania-draggable components, aby uniknąć przestarzałego findDOMNode - Utworzono mapę ref do przechowywania refs dla każdego p...
Poprawny układ przycisku i dwa razy wideuj przyciski boczne
- Przesunięcie wyczyścił przycisk po prawej stronie przycisku wywołania - Przycisk Backspace pozostaje po lewej stronie - Oba przyciski boczne (przestrzeń i prz...
Usuń duplikat onMouseLeave prop w przyciskach dial pad
- Połączony duplikat naMouseLeave handlerzy do pojedynczego uchwytu - Naprawiono błąd budowania: Nie dopuszczono duplikatów rekwizytów
Rozwiązują błędy w kompilacji komponentów rurociągu
- Wykorzystanie komponentu siatki: zmienione z elementu siatki xs x 12 "na siatka x 12" na rozmiar siatki xs: 12 (MUI v6 Grid2 API) - Import naprawiono nieważną...
Uprość getDisplayName do korzystania z userInfo.usernameAlias bezpośrednio
- Usunięto niepotrzebną logikę i błędy - Użyj userInfo.usernameAlias bezpośrednio z danych sesji - Pokaż ROFL tylko wtedy, gdy brakuje użytkownikaInfo lub nazwa...
Rozwiązywać problem z wyświetlanie nazwy użytkownika "Welcome back" w NavTop
- Naprawiono getDisplayName(), aby wyświetlać tylko "ROFL" na rzeczywistych błędach, a nie podczas ładowania - Dodano obsługę stanu ładowania, aby pokazać "Wita...
Stosuj wstępnie nieuwierzytelniowaną sesję od OTKPreAuthFilter w getMyNetworks
- Naprawiono błąd 401, sprawdzając wstępnie uwierzytelnione sesje z OTKPreArethFilter - OTKPreAuthFilter już sprawdza i konsumuje OTK, więc kontroler powinien k...
Zapobiegaj automatycznym wylogowyw się na 401 błędów w sieci
- Zmieniono obsługę błędów 401, aby wyświetlać komunikat o błędzie zamiast natychmiastowego przekierowania do /logout - Dodano przycisk ponownego spróbowania do...
Usuń nieprawidłowe naWebSocketZamknij i naWebSocketError z ClientOptions
- Usunięte naWebSocketZamkonieZamkony i naWebSocketError obsługuje, ponieważ nie są one ważnymi właściwościami ClientOptions - Zdarzenia zamknięcia WebSocket i ...
Move onWebSocketZamknij i naWebSocketError to Customer options
- Przesunięty naWebSocketZamkonaBliźny i naWebSocketRućlec z przydziału nieruchomości do opcji konstruktora klienta - Osoby te powinny być zdefiniowane w Client...
Usuń nieprawidłowy 'aktywny' czek nieruchomości z STOMP Client
- Usunięto klientRef.current.active check, który nie istnieje w typie klienta - Używanie tylko klientRef.current.connected, który jest właściwą właściwością
Zamień StompSubscription z subskrypcją od ?stomp/stomp
- Zmieniono import ze StompSubscription na Subskrypcję (prawidłowa nazwa eksportu) - Zaktualizowano wszystkie odniesienia typu do użycia Subskrypcji zamiast Sto...
Usuń nieprawidłowe połączenieWłaściwośćWysłanieTimeout z STOMP ClientOptions
- Usunięto właściwość, która nie jest częścią typu ClientOptions - Timeout połączeń jest już obsługiwany ręcznie za pośrednictwem połączeniaTimeoutRef
Upuścić błąd kompilacji TypeScript w kompilacji LeadManager
- Naprawiono błąd typu rekwizytu wiórów, zmieniając ReactNode na ReactElement - usunięto niewykorzystany przywóz i rekwizyty - Ostrzeżenie o zależnościMemo prze...
Włącz autouzupełniania menedżera haseł w formularzu logowania (3735)
Poprawne atrybuty autouzupełniania, aby włączyć autouzupełniania menedżera hasła
Auto-przewijanie czatu na dole w zakresie ładowania i nowych wiadomości
Śledź poprzednią liczbę wiadomości i przewijaj płynnie, gdy pojawią się nowe wiadomości; przewiń natychmiast przy początkowym obciążeniu lub gdy nie jest minima...
Frontend WebSocket trwałość - dopasowanie do tyłu i szybsze połączenie
Heartbeat: 4s -> 20s do dopasowania backend, opóźnienie ponownego połączenia: 5s -> 1s, dodaj timeout połączenia 30s
Trwałe połączenie WebSocket z agresywnym utrzymaniem
Bezczynność timeout ustawiona na 0, bicia serca 20s, odłączenie opóźnienia 30s, czas przedniea meczu
Zoptymalizuj softphone, aby pasował do wszystkich treści bez przewijania z wysokością 680px
CHATBOX HEIGHT: 550px -> 680px (optymalna saldo) PHONE DYSPLAY: Zredukowany minHeight (100/75 -> 85/65), wyściółka (14/16 -> 12/14) CALL CONTROLS: Wszystkie 9...
Zredukuj wysokość ChatBox do bardziej komfortowego 550px
Zmieniono z 85% portu w widoku (750-850px) na stały 550px dla lepszego UX Kontrole połączeń WebRTC pozostają w pełni nienaruszone i funkcjonalne
Spraw, aby softfon był w pełni widoczny bez przewijania - kompleksowy kompaktowy układ
CHATBOX HEIGHT: - Zmieniono ze stałego 600px na 85% wysokości widoczności - Używa Math.floor(window.innerHeight ? 0.85) do responsywnego rozmiaru - Zapewnia zna...
Wyeliminuj poziome paski przewijania i zwiększaj widoczność softphone
LAYOUT FIXES: - Zwiększ DOCKED_HEIGHT z 480px do 600px dla lepszej przestrzeni pionowej - Dodaj wyraźne ograniczenia szerokości (Góra mięty, maxSzerokość) do mi...
Usuń podłączoną kontrolę i dodaj rejestrowanie debugowania dla aktywacji STOMP
Klient STOMP nie aktywował się, ponieważ kontrola podłączona temu zapobiegała. Dodano dzienniki debugowania do diagnozowania.
Aktywuj klienta STOMP tylko po otwarciu SockJS
Krytyczna poprawka błędu: Klient STOMP był aktywowany przed otwarciem SockJS, powodując natychmiastowe rozłączenie. Teraz czeka na SockJS na otwartym wydarzeniu...
Włącz transporty zwrotne SockJS dla połączenia WebSocket
Zezwalaj na strumieniowanie xhr i xhr-poling jako upadek, jeśli aktualizacja WebSocket nie powiedzie się.
Usuń nieprawidłowe 'aktywne' wanny w użyciuChatWebSocket
Typ Klienta typu z ?stomp/stompjs nie ma "aktywnej" właściwości. Usunięto nieprawidłowy czek, ponieważ client.activate() jest wywołany natychmiast po stworzeniu...
Poczekaj, aż SockJS otworzy się przed aktywacją klienta STOMP
- Napraw stan wyścigu, w którym klient STOMP aktywował się przed gotowością połączenia SockJS - Przenieś client.activate() do SockJS na open callback - Powinno ...
Ustawienia SSL z twardego kodu w ConfigMap do produkcji
- Usuń środowisko zmiennymi symbolami zastępczy - Hardcoded port 8443, włączony protokół SSL, ścieżka keystore - Fixes Spring Boot nie rozwiązując prawidłowo en...
Poprawa nazw zmiennych środowiskowych Spring Boot SSL
- Zmieniono SSL_ENABLED na SERVER_SSL_ENABLED - Zmiana SSL_KEY_STORE na SERVER_SSL_KEY_STORE - Zmieniono SSL_KEY_STORE_PASSWORD na SERVER_SSL_KEY_STORE_PASSWORD...
Trasa ALL WebRTC API żądań do portu 8443
- Zaktualizowano wszystkie trasy API WebRTC do korzystania z multimediów. - Nie używać już Traefik dla punktów końcowych WebRTC - Dopasowuje media API i Konfigu...
Trasa WSZYSTKIE MediaUS żądania do portu 8443 (byja Traefik)
- Zaktualizowano wszystkie medialne trasy API do korzystania z multimediów.-domena:8443 - Nie używać już Traefik dla MediaService - Zarówno API, jak i WebSocket...
Użyj SSLHostConfig API dla konfiguracji Tomcat SSL
- Użyj SSLHostConfig i SSLHostConfigCertificate (poprawny Tomcat API) - Skonfiguruj certyfikat poprzez . - Naprawia błędy kompilacji z setAttribute/Property
Użyj setAttribute dla konfiguracji Tomcat SSL
- Zmienione z setKeystoreFile/Pass/Type/Alias na setAttribute - Tomcat 10+ wykorzystuje setAttribute dla właściwości SSL - Naprawiono błędy kompilacji
Uruchom MediaService na obu portach 80 (HTTP API) i 8443 (HTTPS WebSocket)
- Odwrócony serwis.yaml i ingresstrol.yaml do użycia portu 80 - Usunięto wymuszone SERVER_PORT i SSL_ENABLED env vars - Dodano DualPortConfig do programowo doda...
Podłącz do portu 8443 (zewnętrznego), który kieruje się do NodePort 30843
- Router do przodu zewnętrzny 8443 do k1m1 NodePort 30843 - Przeglądarka używa media.kamorm.com:8443 - Węzeł wewnętrzny to 30843 (Kubernetes valid range)
Użyj NodePort 30843 zamiast hostPort dla WebSocket
- hostPort może być zablokowany przez zasady zapory sieciowej - NodePort 30843 jest w ważnym zakresie (30000-32767) - Przeglądarka łączy się z zewnętrznym porte...
Jak to, co widzisz żeglugę?
Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.