Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

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

  1. · kamo-internal

    Enterprise Materials workspace (P0) — foldery, wyszukiwanie, masowy, prawdziwy podgląd, współdzielony kompozytor poczty elektronicznej

    Zastępuje płaską 200-pozycę siatki pełną przestrzeni roboczej w celu uzyskania istniejącego obrazowania Zaplecze (który obsługuje już foldery, śmieci, udostępnianie, historię, masę dla MATERIALS): - Folder boczny (create/rename/delete, drag-to-folder) + Wszystkie / Widoki na śmieci - Szukaj, sortuj, grid->list toggle, pagowane 'load więcej' (usunięcie 200 cap) - Bulk select + pobierz zbiorczy (ZIP) / e-mail / move / usunąć - Prowaczna szuflada na szczegóły: prawdziwy podgląd, inline zmianyname + opis, move-to-folder, dzielenie się wewnętrznie (członkostwo, edycja, wygaśnięcie) i historia działalności - E-mail teraz ponownie wykorzystywać udostępnionego kompozytora MessageTool za pośrednictwem globalnego narzędzia:open event (Z/mailbox, CC/BCC, bogaty korpus, podpisy, szkice) zamiast formularza na zamówienie - Nowe trasy do obrazowania: folder create/[id] zmień nazwę + usunięcie/weve-doc, zmienić nazwę, Opis, przywracanie, dostęp na poziomie - Usuwa supersed MaterialsLibrary; wszystkie funkcje Canva (utwórz/import/autoufill/autofill/ Harmonogramy) przenoszone. imgIds obsługiwane jako precyzyjne ciągi przez cały czas.

  2. · kamo-internal

    Rekonsu /messages — rendering iframe, menu kontekstowe listy, wątków, rasy, a11y

    Wdrożenie audytu strony /messages end-to-end. Zgłaszone kwestie: - przyciski odpowiedzi/Replika Wszystkie/Przedlep teraz wyświetlają etykiety tekstowe; usunięte z więcej akcji Rozciąganie (są to sąsiednie przyciski), podczas gdy nowe menu listy je utrzymuje. - wiersze listy wiadomości otwierają teraz menu akcji na kliknięcie prawym przyciskiem myszy i dotknij Długiepressy - rzędy zyskują Przędz ostrości (j / k), pole wyboru wyboru (x) i scroll-to-view. - E-mail renderuje teraz w piaskownicy z automatycznym ramem (srcdoc) zamiast inline NiebezpiecznieSetInnerHTML. To izoluje e-mail CSS/layout, który naprawia Czytanie-szybki "bounce" i środkowy fragment selekcjonerowy, zamyka aplikację w całym tekście Przeciek CSS i dodaje domyślną "zewnętrzną zablokowaną" bramkę śledzenia-pikseli. Poprawność / łyk: - Pełny odszkodowany Reply/Reply-All zestaw In-Reply-To/References (zjednoczony DraftMessage type) więc odpowiedzi pozostają wątkowe; wątpy szybkiego usuwania Odepisy + id nadrzędny, HTML- Ucieka z ciała i wysyła z aktywnej wspólnej / członkowej skrzynki pocztowej. - Forward przenosi oryginalne załączniki; odpowiedź/przewiń rozwiąż pełny komunikat (ocenianie ciała dla akcji wioślarz) zamiast cytować wszystko, co jest otwarte. - Ostrach wyścigowych (wygrane testowe) na loadMessages / komunikat select / obciążenie wątków / Załadunkowanie rozmowy; ankieta nie ruszy już użytkowników stronicowych na stronę 0; Przeładowanie wg filtra Do aktywnego folderu; searchPage resetuje zmianę zapytań. - ThreadDetail expand klucz stanu według folderu + uid (kolizja cross-foldera); markRead Tylko podczas odczytu; ponowne próba używa folderu rekwizyt. - Kompozyt: odbiorca typu napłyto-wydolnego w Send/Draft; załącznik dedupe + Nasadka zagregowana 40 MB + aktualizacje funkcjonalne; upuść zbędny klient OTK. - Proxy: zakres do przodu + walidatory buforowania do ładowania / transmisji w linii; Close Wieloczęściowy wydziela na strzeżonych ścieżkach zaopatrzenia. - Email WebSocket: prawdziwy przystanek po max retries, wykładniczy backoff, stable-connect Przetestuj reset; zanotowana wartość kontekstu w celu ograniczenia ponownego oddania konsumenta churn. Jakość: ujednolicona ’A11y (laboratoria, aria-pressed, keyboard-operable rzędy/przewoźniki); i18n (nazwy folderów, daty listy, pagery, liczba OIOM-ów); usunęła martwa kod i widma wpisy typu keyboard-shortcut.

  3. · kamo-internal

    Przeprojektowanie panelu przyrządu — rodziny akcentujących, masthead, nav nav na indeks segmentu, ujednolicona szklana karta

    Przeprojektowuje dwa najczęściej odwiedzane lądowania na konsolę operatora w kształcie uprawnienia. Fundacja - Włącz już zagrano Geist Sans/Mono (zostały odrzucone przez upadek Arial); trasa MUI typografia przez Geist. - Dodaj białe etykiety -tony z modułu-rodzinnego, drabinę elewacyjną, topedge z podszernięciem szkła, operator-Label + .tabularne narzędzia i token do domu. Fix --gradiient-primary-priroparent (był z twardym niebieskim - teraz pochodzący od --color-primary). Shared FeatureCard (jeden komponent, klawiatura/poprawność) - Teraz prawdziwa kotwica (NextLink): Tab/Enter/miter/middle-click praca i pierścień widzialny ostrogę może w końcu strzelać. Dodaje useReducedMotion guard, podczas gdy wejście do domuWidok na łatwość domu, rodzinny oświetlony chip, liczba uwagi pip, poziomy ogrożne i przelot onClick. Ożywia intencję koloru per-modułu, która została odrzucona na render. Usuwa atramentową kartę domową. Dom - Masthead (kopacz mono + napojedynek czas/nazwisko + tabelaryczny) zastępuje baner tylko org; oklab Backdrop zastępuje znak wodny w skali szarości; dwupoziomowy wyrzutnik w kształcie pozwolenia (zamówiony na zamówienie na użytkowanie rudy + zgrupowany katalog) z paskiem uwagi "Poborze dzisiaj" i "Jump back in" (nowe użycie HomeRecent + global Ustawienia - Registry-driven render zastępuje 18 wklejonych klocków załamania: lepką kolej segmentową + IntersectionObserver scroll-spy + live counts, 4 super-grupy, progresywne ujawnienie (Osługa otwarta, ostatnia-świadoma, przywracanie ostatniej sekcji, rozszerzenie / załamanie się wszystkich), wiersze przyrządów SectionHeader i stały Szybki dostęp (korek MAX_RECENT slice + relative-time + start). Dokładnie zachowa każdą bramę z pozwolenia/produktu-flag. Przecinanie poprzeczne: szkielet + EmptyState, preferuje-redukowaną przejrzystość + ścieżki o ograniczonym ruchu, rezygnacja z nakładów Operator-Label na operatora-Label. Nowe struny interfejsu użytkownika lądują w kamo-translation-dykcyjnej (en) w zamieszaniu towarzyszącym.

  4. · kamo-shared-library

    - ukierunkowana aktualizacja

    Konwersja Async (wirtualne wątki) i zaplanowane zamiatanie utrzymują oderwanego ImgDat; save()/merge() kaskady do zbioru obrazów osieroconychUmowalniaste i rzuty 'kolekcja z kaskadą-deletowe-deletowe-orpin nie była już odwoływana przez własne Instancja bytu. AKTUALIZ KALIZACJA tylko miniatury pozwala uniknąć wykresu jednostki Całkowicie i jest bezpieczny od każdego wątku.

  5. · kamo-internal

    Dodaj Odpowiedz wszystko do okienka odczytu wiadomości i widoku wątku

    Reply All był reklamowany (klawiszowiec-krótkiej etykiety + i18n key), ale nie miał Zajmowanie się. Podłącz: nowy computeReplyAllciRecipents helper umieszcza nadawcę Do i do każdego innego pierwotnego odbiorcy w CC, z wyłączeniem samoczynnego i odkowanego Sprawa – niewrażliwa. Dodaje przycisk, skrót "a" i wpis kontekst-menu W MessageBrowser plus przycisk do przesyłania w ThreadDetailView.

  6. · InitializerService

    Częściowo-wyjątkowy indeks egzekwował jeden aktywny pakiet zamykający na pożyczkę (zamknij podwójnie bliższą alifkę)

    CREATE UNIQUE INDEX uk_mlos_closing_pkg_active_loan ON mlos_closing_package (loan_file_uid) Gdzie jest status > 'CANCELLED'. Trwały backstop za Strażnik assembler w aplikacji: zduplikowany aktywny pakiet zamykający Zjedź własną rejestrację MERS + dofinansowanie (podwójne zamknięcie). Zamknięcie opakowania Żyje w dzielonym libie z tylko nieuniknionymi wpisami na temat Index i nie może wyrazić Częściowo-nieunikniona za pośrednictwem JPA, więc jest to ręcznie pisany DDL tutaj (KI posiada własne Schema). Idempotent; dotyczy następnego biegu KI.

  7. · MediaService

    Materiały generowane zaplanowano miniatury w procesie

    Bezgłowe zamiatanie nie może napędzać rurociągu miniaturowego ConversionService OTK, więc wygenerowanie miniatury strony-0 PNG za pośrednictwem ImageIO zaraz po przechowaniu eksportu — Zaplanowane materiały renderowane teraz w sieci jak każdy inny, nie jest potrzebny na zasyp.

  8. · kamo-internal

    Recurring generowanie harmonogramów UI

    ScheduleManager: tworzenie/lista/usuwanie harmonogramów (recypcja + codziennie/co tydzień/miesiąc + God/dzień + opcjonalne cele automatycznego postu + podpis); wystrzelony z Materiałów, ogrodzony Na Canva autofill (Enterprise) możliwości. + canvaApi + /api/canva/schedules proxies.

  9. · MediaService

    Zaplanowana generacja - zamiatanie przepisów na kadencję

    - CanvaScheduleKontroler: CRUD for org harmonogramy (recja + kadencja + godzina/dzień + opcjonalne cele społeczne), obliczanie nextRAt - CanvaGenerationService: Bezgłowy - jako Materiał (w trakcie ImageService; miniatury-bez wypełnienia) - CanvaScheduleSweep: -Schedulowane zamiatanie, twierdzenie atomowe na schemat, generuje i Najlepszego wysiłku auto-postownie osiąga wynik docelowym połączeniom społecznym poprzez Podpisany szew public-URL

  10. · kamo-shared-library

    CanvaSchedule byt + repo (generowanie powtarzające się)

    Org-scoped powtarzający się harmonogram (recypto + kadencja + opcjonalne cele społeczne) z Zapytanie o uznanie atomowe, więc MediaService zamiata raz.

  11. · kamo-internal

    Inline rozszerzalny transkrypcja Whisper na softphone poczta głosowa + rzędy call-history

    Każdy nagrany wiersz (poczta głosowa i historia połączeń) otrzymuje przełączanie "Transcript", które Poczlub transkrypcję Whisper na żądanie i pokazuje to w linii, więc Członkowie mogą go czytać bez otwierania gracza. Kłamstwo na nagranie.

  12. · kamo-internal

    Zapisz + ponowne wykorzystanie automatycznych przepisów na autouzupełniania

    TemplateAutofill: "Saved recipes" chipsy ładują szablon + wstępne mapowanie; "Zapisz jako przepis" utrzymuje bieżący szablon + wartości pola w całym całym. + lista canvaApi/zasypia/delete + /api/canva/recipes proxies.

  13. · MediaService

    Zapisane przepisy na autouzupełnianie CRUD (org-scoped)

    CanvaRecipeController: GET/POST/api/media/canva/reciony + DELETE — Zapisywanie/lista/miękka-deletuj nazwę brand-template + mapowanie pola, zwiniek do - dzwoniąc do orgi.

  14. · kamo-shared-library

    CanvaAutofillRecipe byt + repo (uratowane przepisy na autouzupełniania)

    Org-shared Nazwa wiązanie szablonu marki Canva do wartości pola (dosłowne Tekst lub obraz Materiałów), więc stewardzi mogą ponownie łączyć standardowe łączenie danych.

  15. · kamo-internal

    Dodaj pole ID materiału, aby utworzyć formularz, stronę szczegółów i import

    Wątek znużalny materiałID (max 40) przez typ ołowiu, prowadziApi (create + update liga) i wspólny system-pole leadFields Lista — która napędza zarówno kreator importu ręcznego, jak i API/sprzedawcy Mapowanie wlotów UI (plus szablon CSV do pobrania). Dodaje dane wejściowe do /ołowia/nowy i wiersz widoku/eitowy wiersz na stronie szczegółów lead, podłączonych do Mapa pane-flash w czasie rzeczywistym. Etykiety via lead.new.fields / lead.view.fields / lead.view.rows (materialId).

  16. · kamo-internal

    Enterprise autofill UI — szablony marki scalania danych

    TemplateAutofill: wybierz szablon marki Canva, wypełnij każde pole literalnym Tekst, org/Token zgodności (NMLS, Ujawnienie równego mieszkania, nazwę/telefon/ Strona internetowa/adres, nazwa użytkownika) lub obraz materiałów; wygeneruj wyekszona danymi Zaprojektuj i importuj go z powrotem do Materiałów. Gated on the Canva "autofill" (Enterprise) możliwości. + canvaApi metody i /api/canva/'brand-templates, - proxies.

  17. · MediaService

    Enterprise autofill — szablony marek scalania danych

    - CanvaApiClient: szablony marki listy (dataset-non_empty), pobierz zestaw danych, Zadowolacz do ładowania aktywów, tworzenie / tworzenie / tworzenie automatycznych zadań - CanvaController: GET /brand-templates, GET /brand-templates/index, POST /autofill — rozwiązuje pola obrazów, przesyłając odnośny MATERIALS Materiał do Canvy jako zasób, a następnie data-merges; ankietuje nowy projekt. Canva 403 (bez możliwości autouzupełniania) jest jak autofill_not_available.

  18. · SecurityService

    Persist zmapowany Material ID na temat ręcznego importu + wlotu API

    Obaj setDirectFieldOnCreateRequest przełączniki nie mają domyślnego przypadku, więc System odmapowany FieldPath zostaje po cichu upuszczony. Dodaj materiałId obudowa do Ręczny import (LeadImportController) i sprzedawca/API-intake (LeadIntakeController) Dyspozytorzy, więc zmapowana kolumna / pole materiale ID faktycznie utrzymuje się.

  19. · kamo-shared-library

    Dodaj pole ID od końca do końca w wspólnej lib

    Dodaje zniwalaczalnego, max-40-charmaterial do jednostki ołowiowej (MATERIAL_ID VARCHAR(40)), rejestruje go w LeadHistoryFieldRegistry (kategoria profilu) Tak więc edycje są kontrolowane, wątków go za pomocą Create/Update/Read DTO i LeadService create/update (odbiór + cncate do 40, firma lustrzanaName), I zachowuje go w przebudowie bazowej->> hipotegolne.

  20. · kamo-internal

    Załącze społecznościowe + e-mail-a-material + linki publiczne

    Dystrybucja materiałów marketingowych, zbudowana na nowym podpisanym szewom public-URL. - materiałyApi.publicLink(imgId) + /api/materiały/zapas proxy - Materiały: "Kopiuj link publiczny" i "Email ten materiał" (przyłączy się do pliku wysyłanie wychodzących za pośrednictwem istniejącego multipart /api/email/send, zamkniętego na org e-mailu org) - MaterialPickerDialog (siatka wielokrotnego użytku nad MATERIALS assoc) - SocialComposer: raz niepełnosprawny przycisk zdjęcia otwiera teraz zbieracz i mocuje materiał jako nośnik pocztowy za pośrednictwem publicznego adresu URL (sługa Meta/Telegram/Discord)

  21. · MediaService

    Krótkotrwałe podpisane publiczne adresy URL dla aktywów marketingowych

    Pozwól dostawcom usług społecznych (Meta) i e-mailowi uzyskać konkretny materiał dla ograniczonego Okno bez wystawiania wiadra z prywatnymi materiałami obrazowymi. - MaterialUrlSigner: HMAC-SHA256 (platforma.enc-key) token ? imgId:orgId:exp, 1h TTL - MaterialsController: POST /api/media/materiały/link (aut ? mint URL dla a org-owned MATERIALS image) + GET (bezsensowne ? ? Służy bajtom dla ważnego tokena; org + assoc sprawdzony). Przejażdżka istniejącym Sesje bez sesji /api/media/- forward — nie jest konieczna zmiana APIService.

  22. · kamo-shared-library

    Przejście do samoprzesowaczy pierwszej klasy kredytobiorcy

    DRAFT-APPLICATION_TAKEN dla pożyczkobiorcy (partner pożyczkowy, a nie operator, więc nie LOS_TAKE_APPLICATION). Trasy przez przejście() z orzeczonym zakresem, który Dotacje TYLKO w prawo do podjęcia i przypiętego toStatusId, więc pożyczkobiorca Skład staje się właściwą transformacją rurociągu – legalność maszyn-państwowych, Kamień milowy, ApplicationSubmission (INITIAL_DISCLOSURE) i Wydarzenie poCommit STATUS_CHANGE - zamiast cichego pliku kredytowego poszklenia. Członkostwo w partii pożyczkowej jest weryfikowane przez dzwonicę.

  23. · kamo-internal

    Usuń + podgląd + import-plik-to-Canva

    - usunąć materiał (wygł. MANAGE_MATERIALS) z potwierdzeniem - kliknij miniaturę, aby wyświetlić podgląd w lightbox - "Import a file" zamienia plik PDF/PPTX/image w edytowalny projekt Canva (proxy odbudowuje ciało wieloczęściowe, takie jak nadawca do obrazowania)

  24. · MediaService

    Importowanie pliku do Canva jako edytowalny projekt

    - (przywóz do konstrukcji binarny) - CanvaController POST /imports (multiparta) - create+poll import job - editor Głęboki link z korelą_state dla nawilowej powrotnej - import Base64 w CanvaOAuthController

  25. · InitializerService

    Migracja dodaje kolumna nagrywas.transcript TEXT

  26. · VOIPService

    Zwróć transkrypcję w nagrywaniu metadanych dla odtwarzacza softphone

  27. · kamo-internal

    Pokaż transkrypcję Whisper w odtwarzaczu multimedialnym softphone

  28. · ConversionService

    Shared TranscriptionService + ogólny punkt końcowy; transkrypcja nagrań VOIP

    - Wyciąg transkrypcja wielokrotnego użytkuService (ffmpeg normalize -> whisper-asr) i a Ogólny punkt końcowy POST /api/konwersja/transcribe, zastępując specyficzny dla spotkania Kontroler. Poznaj + VOIP teraz dziel się jedną ścieżką transkrypcji. - RecordingProcessController: transceptura każda sfinalizowana VOIP nagrywa/respondumowa W procesie (nieznośny w sprawie awarii) i przechowywanie transkrypcji na nagraniu.

  29. · kamo-shared-library

    Kolumna transkrypcja na nagrywaniu + nagrywanie Metaetadata

    Dodaje kolumnę TRANSCRIPT TEXT do jednostki nagrywającej i wątków transkrypcji via-a (z dośladowaniem wstecznym Konstruktorzy, więc istniejące 5- i 9-łowe osoby dzwonią nie są dotknięte). Po zaludnione przez Nagrywanie-finalizuj przepływ przez Whisper; stworzony przez migrację KI.

  30. · MediaService

    Sprawdź podpis nanawczy powrotnej JWT; schludne odświeżenie tokena

    - CanvaJwtVerifier: zweryfikuj podpis etyp e-brzeńczy_jwt's Ed25519 przeciwko Canva's JWKS (/connect/keys), plus aud/exp; klucze podręczne przez dziecko. Nav Return teraz nie zamyka się na ręczny import, jeśli weryfikacja nie powiedzie się. - CanvaTokenService: upuść nieefektywne . Transakcyjne na samozwańczej Pomocnicy odświeżeniowy/markDown (Spring Data na call tx + zamek na członka Już teraz poprawia rotację tokena); wyjaśnij komentarzem.

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