Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

Każde ulepszenie platformy, jak to wysyła.

  1. · kamo-shared-library

    Zapytania dotyczące dokładnego dopasowanie, lista stron, paragony

  2. · kamo-shared-library

    Dodaj datęLastViewed do MediaSessionMember dla znaczników czasu paragonu

  3. · kamo-shared-library

    Dodaj flagę isAccessRevoked do kontroli dostępu na przydział

  4. · kamo-marketing

    Rozróżnij aktywnie tłumaczenie vs komunikaty kolejkowane

    Kolejka tłumaczeń była już sekwencyjna, ale każda kolejka bańki Wyrenderowany "Translating...". Teraz pojedyncza wiadomość w locie pokazuje "Przetłumaczenie..." z pulsacyjną kropką i resztą show "Pending Translation..." Ze statyczną kropką, dzięki czemu odwiedzający może zobaczyć postęp w kolejce.

  5. · kamo-internal

    Rozróżnij aktywne tłumaczenie vs komunikaty kolejkowe

    Kolejka strumieniowa była już ściśle sekwencyjna (jedna pojmacja na raz), Ale każda kolejkowa wiadomość brzmiało "Przetłumaczenie...", ponieważ wszyscy się podzielili To samo w oczekiwaniu na flagę. Podziel to na dwa stany: singiel Wiadomość aktualnie w locie pokazuje "Translating..." z pulsacyjną kropką, wszystko Inne kolejkowe wiadomości pokazują "Pending Translation..." ze statyczną kropką. Wiadomości na żywo (właśnie przybyte) są tłumaczone same i zaczynają się w aktywnym Państwo.

  6. · kamo-marketing

    Pokaż ikonę błędu, gdy wiadomość nie przetłumaczy

    Kiedy tłumaczenie na zgodnie z wiadomością tłumaczy się tłumaczy:false, błędy wychodzą, lub czas na zewnątrz, chat bubble renderuje ikonę AlertTriangle w kolorze czerwonym Z podpojem "Nieprzetłumaczono wiadomości". Zamiast po cichu odchodzić Bańka w oryginalnym języku.

  7. · kamo-internal

    Pokaż ikonę błędu, gdy wiadomość nie przetłumaczy

    Gdy tłumaczenie per-mes-message zwraca tłumaczenie przetłumaczone przez tłumaczone:false, błędy wydawane, lub czas na zewnątrz, bańka czatu teraz renderuje małą czerwoną ikonę ErrorOutline w miejsce odznaki tłumacza z pyskiem "Nieprzetłumaczyć Wiadomość." zamiast po cichu zostawiać bańkę w oryginalnym języku. Flaga jest resetowana za każdym razem, gdy użytkownik wybierze nowy język, więc próba poprawna Może odnieść sukces bez nieumiejętnego błędu.

  8. · kamo-marketing

    Transy strumieniowe najnowsze dla historii odwiedzających

    Kiedy odwiedzający ląduje na miejscu nieanglojęzycznym, a czat wsparcia ma Istniejące angielskie wiadomości, każda bańka oznaczona potrzebuje Przemowanie przez Zaplecze pokazuje teraz "Translating..." zastępczy podczas kolejki do przesyłania strumieniowego Wypełnia je pojebędną pojebędną, zaczynając od najnowszego komunikatu. A A Licznik pokoleniowy zapobiega pulsowaniu aktualnych kolejek.

  9. · kamo-internal

    Przesyłki wiadomości strumieniowej najnowsze na przełącznikach językowych

    Gdy użytkownik wybierze nowy język (lub otworzy istniejący czat w a Język inny od źródła wiadomości), każda bańka, która potrzebuje Tłumaczenie natychmiast renderuje "Translating..." zastępczy symbol i Tłumaczenia przesyłają w jednym na raz, zaczynając od najnowszej Przesłanie i praca wstecz. Obejmuje to własną przeszłość użytkownika Wiadomości — wszystko, co jest autorstwa w innym języku niż widz Teraz jest już tłumaczone. Licznik generacji odwołuje kolejki w locie, jeśli Użytkownik ponownie zmienia język.

  10. · kamo-marketing

    Automatycznie translusze wiadomości zwiedzających i agentów

    Agent na żywo odpowiada, że przybywa w języku innym niż adres URL odwiedzającego Teraz pokaż bańkę "Translating...", podczas gdy połączenie TranslateService rozwiązuje, Następnie zamień na przetłumaczony tekst z odznaką językową, której podpowiedź jest Język źródłowy i oryginalny komunikat. Wiadomości zwiedzających są oznaczone Z adresem URL locale w wysyłaniu, aby czat agenta mógł je przetłumaczyć na Język profilu agenta. Wiadomości załadowane do historii są tłumaczone Na przód za pośrednictwem nowego ?lang-locale> query param na /api/chat/support.

  11. · kamo-internal

    Przetłumacz wiadomości czatu w języku widza

    Dodaje tablicy flagi "Mój język" w NavTop (po lewej stronie narzędzia e-mail, oddzielone Przez regułę pionową). Wybór języka wpisuje się z powrotem do Member.language i Syncs locale cookie, dzięki czemu cały interfejs użytkownika się zmienia; nadaje również wydarzenie Każdy otwarty ChatBox używa do ponownego wykorzystania swojej historii w nowym języku. ChatBox teraz pobiera wiadomości z ?lang-locale>, renders tłumaczone bąbelki Z małą odznaką Translate, której podpojem narzędzi pokazuje oryginalny tekst i źródło Język, i pokazuje "Translating..." symbol zastępczy dla wiadomości na żywo, aż do momentu TranslateService call powraca. Wysłanie ścieżki oznacza każdą wiadomość wychodzącą z Lokalny autor, aby inni widzowie mogli go przetłumaczyć na żądanie.

  12. · APIService

    Proxy support-message punkt końcowy

    Dodaje trasę przejścia dla nowego punktu końcowego MediaService, który tłumaczy Pojedyncza wiadomość o obsługą - czat w lokalizacji adresu URL odwiedzającego. Po stronie marketingu Widget na czacie trafi - Której bramę przekazuje teraz do MediaService ze standardowym czatem publicznym Auth i kontrole limitu stawek.

  13. · MediaService

    Tłumaczenie na żądanie dla czatów i wiadomości pomocowych

    Przechwytuje język źródłowy dla każdego czatu / wiadomości pomocy technicznej i dodaje Opcjonalny ?lang-XX param na punktach końcowych wiadomości i premii plus na przemieszczenie POST /translatuj punkt końcowy. MediaService prowadzi teraz do Tłumaczenia TranslationServiceCient, MessageTranslationSkrzynki skutkują MediaObjMsg Przekładnia, więc to samo tłumaczenie nigdy nie jest opłacane dwa razy. Przewody ten sam przepływ do ścieżki local-chat (visitor): odwiedzający wysyłają ich adres URL jako sourceLanguage, a strony agenta / odwiedzającego po każdym pociągnięciu Tłumaczenia na swój ulubiony język. Dodaje usługę tłumaczenia Sekretne wdrożenie MediaService, aby nowy klient mógł uwierzytelnić.

  14. · kamo-shared-library

    Tłumaczenie cache dla wiadomości czatu

    Dodaje jednostkę MediaObjMsMsT) (jeden wiersz na (przesłanie, język)) i opcjonalnie źródłoLanguageId kolumna na MediaObjMsg, więc wiadomości czatu mogą być Przetłumaczone na życzenie i natychmiast zarezerwowane dla innych widzów w tym samym Język. ChatMessageDto nosi źródłoLanguageId, więc odbiorcy na żywo wiedzą Czy muszą się tłumaczyć. MediaService.createMessage zyskuje przeciążenie To zajmuje język autorki, powrót do Member.language dla dziedzictwa - dzwoniących.

  15. · kamo-internal

    Dodaj sesy personal + Chat/Docs/Notes/KB/HRS

    Indeks /settings nie wykazał żadnych sekcji dla osób niebędących do adminów, ponieważ każdy Istniejąca sekcja została zamknięta po prawej stronie administratora (CONFIGURE_SYSTEM, MANAGE__SETTINGS, MANAGE_ACCESS_RULES). Regularny członek zespołu tylko z Prawa wsparcia widziały dokładnie 3 karty (Dlapas, Analytics, Scheduled Wsparcie) i nic więcej. Dodaj zawsze widzialną sekcję osobistą (Mój profil, audio i wideo, Aktywności konta oraz plany & rozliczeń na orgs dzieci), które linkują do Własne /setcje/członkinie/tajemnie karty — więc ustawienia nigdy nie są puste, Bez względu na prawa na poziomie org. Pojrzyj również wcześniej zaginiony Czat / Artykuły / Noty / Wiedza Sekcje bazowe / HRS — każda zamknięta na odpowiedniej fladze funkcji org plus odpowiedni prawo MANAGE___SETTINGS — dopasowywać dedykowane /settings/features/'app> strony, które już istnieją dla tych aplikacji.

  16. · kamo-internal

    Obracaj otwieranie bramek w oparciu o proporcje widoku

    Rama bramek teraz przechyla się przez atan2 (widzeportH, viewport) więc jest otwarty Prawo strona zmierza w kierunku przekątnego widoku — dla 16:9 monitoruje Punkty otwarcia 29 euro na południe od wschodu; za portret wskazuje bliżej Na południe. Czyta sposób, w jaki użytkownicy naturalnie rzutują głowy z większości Ekran z powrotem w kierunku lewego górnego rogu. Fizyka: kolizja bramkowa przebiega teraz w korordach bramkowych. Każdy rzucony Środek + prędkość głowy obraca się w lokalnej ramie, istniejący AABB Zderzenie ścian osiowych przebiega bez zmian, a następnie dowolne Odbicie odcisku i prędkości obraca się z powrotem do przestrzeni świata. O. w tym, w tym, pot w tym, w tym, że pot wt., w tym, w tym, z wt., w tym, o., w tym, w tym, z w Kontrola strefy punktowej odbywa się również w lokalnych kodach, więc głowa naprawdę Wejście do (obróconego) otwarcia wciąż punktów. Wizualne: ramka SVG + poświata po stronie wejściowej na żywo wewnątrz obrotu kontenery; nakładki na uroczystości (GOAL!/MISS!) i podpis REMOVE Siada poza rotacją, więc tekst pozostaje czytelny. Miss-shake teraz Oscyluje się wokół kąta bazowego zamiast zera. Kąt bramki jest rekomputerowy w widoku resize resize za pomocą ustawiacza stanu, z Paraliżowy ref, więc rzut RAF odczytuje najnowszą wartość każdej klatki Bez ponownego roztworu oddzwonienia.

  17. · kamo-internal

    Rzuć bramkę, aby uzbrajić bramkę z strzelcem/miss obchody

    Ramka bramkowa 132 x 132 pojawia się w górnej lewej części, gdy głowa jest w środku Samochodem lub aktywnym miotiem, przesunięcie 56px z narożnika, aby głowice mogły Brak przeszłości lub za nim. Trzy solidne ściany (górne, lewe, dno) działają jak Elastyczne powierzchnie odbijające (0,65 restytucji); prawa strona jest otwarta Wejście. Odważny czerwony X w tylnym panelu sprawia, że "usuwanie" intencją Niewątpliwiony, a pulsujący wskaźnik wejścia oznacza otwartą stronę. Kiedy rzucona głowa przechodzi do strefy wyników, jest usuwana Z mapy rzutu, podstawowe okno narzędzia jest zamknięte przez Narzędzie: zamknięcie, a głowica jest usuwana przez usunięcie Zielony promieniowy Błysk, 18-cząstkowy złoty/pomarańczowy pęk i odbijająca się CEL! - Strzela na wynik. Kiedy rzucona głowa po prostu odbija się od ściany bramkowej (ogłoszony o 350ms, aby pojedynczy błąd nie zawiódł, nie wysyła spamu), cel Trzęs się czerwono i MISS! nakładki uderza. Stabilność: kolizja bramkowa żyje całkowicie wewnątrz pętli RAF (brak konfliktów systemu sprężyny) oraz HexHeadGoalZone są właścicielami wszystkich Świętowanie stanu wewnętrznego – silnik tylko strzela. Czysta Funkcja addytywna; ścieżki przeciągania / upuszczania nienawracają pozostają niezmienione.

  18. · kamo-internal

    Fizyka rzucana z kolizjami przy basenie i szlakiem kometek

    Przesunięcie głowy obok progu rzutu uderza go w granat W fizyce w zasięgu jawnej (tarcie, odbicie krawędzi, wzmocnienie głową w głowę Zderzenia). Powolne krople nadal lądują dokładnie tam, gdzie wypuszczono. Podczas gdy głowa Jest w ruchu podąża śladem ognia w stylu zręcznościowym. Rzut jest ogrodzony przez obie prędkość uwalniania (> 650 px/s uśredniony nad Ostatnia 110 ms) i całkowita odległość przeciągania (> 30 px) tak szybko precyzyjny Powtórka nigdy nie przypadkowo uruchamia rzut. Magneitude jest ograniczony do 3200 px/s, aby utrzymać oswojenie przesunięcia krawędzi detekcji. Rzut pętli RAF napędza wartość ruchu zapisuje bezpośrednio przez .set() — Omijanie sprężyn w ruchu ramry podczas lotu - i samo-powstrzymajki, gdy Wszystkie głowice spadają poniżej progu prędkości stopu. placeHomeCluster i softPushCluster omijać każdą kotwicę obecnie na mapie rzutu, więc System sprężyn nigdy nie zwalcza integratora fizyki. Zdeległe głowice odłączają się od dowolnego gromady, promują do klastra solowego, oraz Dołącz do symulacji rzutu z impulsem nadanym przez kolizję. Wytwórnia szlaku: SVG warstwa z wzatorami promieniowo-gradientowymi wzdłuż najnowszych Pozycje, mix-blend-mode: ekran dla dodatkowego blasku, pojedyncze rozmycie CSS Filtr dla miękkości — arkadowa estetyczna, prawie zerowy koszt procesora.

  19. · kamo-internal

    Użyj OTK z wymianowany na nowi org

    Wolć otk zwrócony przez POST /api/security/org w związku z kontynuacją /api/bezpieczeństwo/jdź jak w obie strony. Serwer teraz miętuje świeżego właściciela Sesja jako część kreacji orgi, więc post-twórz przekierowanie do nowego org /walet jest deterministyczny - bez rasy z tworzeniem domeny, nie Ciche wejście - jako porażka opuszczając twórcę na sesji rodzic-org.

  20. · SecurityService

    Właściciel miny + OTK on org create

    Po stworzeniuOrganizationOwner, miętuj świeżo - związany z nowym właścicielem TeamMember i zwrócić OTK wraz z id/członkami. Bez tego Twórca pozostaje na sesji rodzic-org – ograniczone prawa i isOrganizationOwner-false - więc pojawia się nowa strona ustawień orgi dla dzieci Ozdęta i plany & Billing są ukryte, dopóki nie zostaną ręcznie ponownie wejdą.

  21. · kamo-shared-library

    Samonaskowe nieopowiarystowane zamówienia COMP na starcie

    Na stronie PostConstruct, zeskanuj wszystkie zamówienia APPROG COMP i przeliczenie wszelkich zamówień Brak konta subskrypcja. Idempotent — find-or-create oznacza bezpieczne dla Uciekaj wielokrotnie.

  22. · kamo-internal

    Przesuń dostępność rozwijaj pozycję w lewo przed My Businesses

    Przenosi pigułkę o status z prawej poprzeczkę akcji do lewej sekcji powitalnej, umieszczając ją między separatorem powitalnym a My Businesses z przegrobem. Usuwa teraz regulowaną pionową regułę, która wcześniej oddzielała status od przycisków ikon.

  23. · kamo-internal

    Dodaj targetOrganizationId do typów Subskrypcji i createSubscriptionOrder

  24. · SecurityService

    Dodaj punkt końcowy do komp-p, aby aktywować subskrypcję COMP z zatwierdzonego zamówienia

    POST - połączenia - a następnie unieważnia uprawnienia do docelowego orgudu za pośrednictwem Uprawnienia.

  25. · kamo-shared-library

    Zamówienie COMP Auto-provisions AccountZaskrypcja i przypisuje licencję

    - Subscriptionorder: dodaj targetOrganizacja (nienależne do orgs) - dodaj celOrganizationId string -Repozytorium konta: dodaj findBrimaryMember_Id dla odszukania konta przez członka posiadacza - Subskrypcja: repozytorka wtryskowa; PrzepisCompSubscriptions tworzy/upert - Subskrypcja - Subskrypcja i ACTIVE AccountLicense dla członka targetorg; zatwierdźć, że zamawianie płatności COMP; nowy abonament aktywcyjny do wstecznego świadczenia istniejących ZASTOSOWANYCH ZASTOSJE

  26. · kamo-internal

    Wymień kliknięcie na otwarcie popovera akcji + sterowanie rozmiarem

    Kliknięcie głowicy sześciokątnej otwiera teraz polerowany wyrzutnik szklany amoryzm z Działania kontekstowe zamiast natychmiastowego otwierania okna narzędziowego. Członek Nabywa czatu: Otwórz Czat, Wyświetl konto, E-mail, Zaproś na spotkanie, Zadzwoń (gdy obie strony mają zarejestrowane rozszerzenie VOIP); głowice narzędziowe Otwórz Otwarte "toolName". A Size sub-menu pozwala użytkownikowi wybrać mały/medium/ Duże dla tej konkretnej głowy (wytrwałe na członka przez nowy MemberUiPreference store oraz suwak w skali globalnej, który wpływa na każdy Głowa sześciokątna na tej maszynie (wytrwała w localStorage). Okna narzędziowe już teraz Szerokość zacisku / wysokość do widoku, więc nigdy nie otwierają się częściowo poza... Ekran nawet z skurczonymi oknami.

  27. · InitializerService

    Dodaj tabelę MEMBER_UI_PREFERENCES (zamówienie 60)

    Idempotent CREATE dla ogólnego w zależności od członkini sklepu UI-preference Selektor rozmiaru rozmiaru sześciogłowego i ustawienia interfejsu użytkownika naczłonowy. Schema odzwierciedla konwencję EmbRecordState (is_active, date_created, date_updated) używany w innym miejscu w modelu danych.

  28. · SecurityService

    Dodaj MemberUiPreferenceKontroller dla ustawień interfejsu użytkownika

    Powściąga nowy selektor wielkości sześciokątnej i każdą przyszłość małą. Preferencja użytkownika. Punkty końcowe w /api/security/members/me/ui- Preferencje rozwiążą członka z sesji OTK i przeczytaj/zapis JSON Wartościowe kluczowe przez nieprzezroczysty łańcuch prefKey.

  29. · kamo-shared-library

    Dodaj MemberUiPreference podmiotu dla prefs UI na osobę

    Ogólny naczłonowy sklep z preferencjami interfejsu użytkownika (członek Id, prefKey, JSONB wartość) W przypadku małych utrzymanych ustawień interfejsu użytkownika. Pierwszym konsumentem jest hex-head popover Selektor rozmiaru.

  30. · kamo-internal

    Wire FeaturesManager na subskrypcję platformy dla dzieci-orging

    FunkcjeManager nazywał dziedzictwo - które Rzuty (wygrane opad) zamiast odczytać prawdziwą subskrypcję platformy. Teraz dzwoni - który pyta root org's Zamówienia na subskrypcję handlową dla połączenia międzyorgami rozmówcy. Kiedy i kiedy Dzwonier ma UWADZONE KONKURA KONKURENNE na orginie korzenia, wszystkie bramki z funkcjami otwierane jako Oczekiwano dla skompilowanych administratorów zorgami dzieci.

Twój wszechświat czeka.

Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.

Bezpłatne na zawsze — nie wymaga karty kredytowej