Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

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

  1. · kamo-shared-library

    Zaliczka hipoteczne przenosi finanse opowiedziane na kredytobiorcy (dochody, kredyt, cena zakupu, zaliczka, saldo refi/cash-out)

    Powierzo(-a) istniejące i dodaje cztery podane kolumny do LeadClaimMortgage; Przewody DTO (odczyt/aktualizacja/utwórz), rejestr pola historii i LeadService Stwórz + aktualację. Są to fakty CLAIMED/ESTIMATED pożyczkciego (ognisko z zweryfikowanego URLA), podając Kredytoficycyjny to bogate zdjęcie sprzed 1003 z portalu pożyczkobiorcy.

  2. · SecurityService

    Proces przesyłania przesyłanych przez członków takich jak lub bg + gate gate przez nowe prawa

    - Nowy ImageResizeClient uruchamia przesyłanie w tle członków przez SAME Przetwarzanie post-post-twór jako tła org (POST . i Przechowuje wynik jako .webp. - ThemeBackgroundController: autoryzuj wszystkie pięć punktów końcowych nowych praw — MANAGE_OWN_BACKGROUND_IMAGES dla własnego członka, . . dla innego członka (superset; obwodnice trybu boskiego). Reads rozwiązanie celu Użytkownik członka, aby administratorzy mogli wymieniać / wyświetlać obrazy innych; przesyłać sklep w podgrzaniu Użytkownik docelowego użytkownika. - Nowy GET /theme-backgrounds/aktywny zwrot z własnym pokazem slajdów członka sesji Adres URL obrazu (pusty > org fallback) dla globalnej warstwy tła. Prawa automatyczne zasiewaniu na starcie za pośrednictwem RoleRightsSyncService (potrzebuje nowego wspólnego-lib, Które CI klonuje). Nie wymaga się uruchomienia KamoInitializer.

  3. · kamo-internal

    Gate My-Profile tło według nowych praw + slajdów / urz.

    - Bram moją sekcję "Background & Theme" przez MANAGE_OWN_BACKGROUND_IMAGES (self) / ? (inne); niech met-admin Otwórz profil innego członka. - Wytrwaj wybór org-vs-w. za pomocą flagiInSlideshow każdego tła (org - nie aktywny, własny - wszystkie aktywne) — brak zmiany schematu; fetch heurys Teraz przełącza się z aktywnych obrazów, aby dopasować to, co służy pokaz slajdów. - OrgSlideshowLayer preferuje aktywne pochodzenie członka (GET - fail-soft) i spada z powrotem na Tło org. Nowa cienka /active proxy.

  4. · kamo-shared-library

    Dodaj Zarządzanie prawami własności / inne Prawa do obrazów tła (grupa ogólna)

    Dodaje MANAGE_OWN_BACKGROUND_IMAGES (165) i - (166) do RoleRightType, serwisType null, więc lądują w ogólnych ustawieniach grupa (przeslacz w języku precedensem STATE_LICENSING__OWN/ALL). Bramuj na członka Funkcja obrazów w tle w My Profile. Dodatek-tylko; wersja bez zmian.

  5. · SecurityService

    Powiadom przydzielonego urzędnika ds. pożyczek, gdy wszystkie docetowe pożyczki są otrzymywane

    Pożary LOAN_DOCS_READY_LO w satysfakcjonujących punktach wraz z kredytobiorcą DOC_COMPLETE. Rozwiązuje LO przez pożyczkęFile -> ?> Członek; Samo strzeżony przez pożyczkę w pełni zebraną, przydzielonego LO i rozwiązania e-maila.

  6. · kamo-shared-library

    LOAN_DOCS_READY_LO kanoniczny szablon — powiadomi przypisany LO, gdy wszystkie są dokacje pożyczki

  7. · kamo-internal

    Przypisz urzędnika pożyczkowego do transakcji z sekcji inicjatora

    Sekcja Originator tylko do czytania ma teraz picker ofijatora (członkowie Geod via /members/names) + Przypis, dzwoniąc do PUT . na Poziom transakcji (odziedziczony przez wszystkie kredyty dla dzieci). Po przypisaniu ponownie aplikacji, więc Projekcja na żywo natychmiast odzwierciedla nazwę LO/NMLS/licencja państwowa. Ukryty raz Zamrożone (tak samo na początkujące). To sprawia, że cały zarządzany przez system pomysłodawca jest operowany – wcześniej To nie było sposobu, aby ustawić zadanie, więc pola LO zawsze wyświetlały puste. (Nowe ciągi UI w linii w oczekiwaniu na i18n pass, pasujące do istniejącego powiadomienia sekcji.) Zweryfikowano: tsc --noEmit czyste.

  8. · kamo-internal

    Pola dostawcy config dla dostępu poczty w chmurze

    Dodaj konfig wejściów, jak odczytuje program resolwent EmailService, aby uwierzytelnić chmurę Skrzynie pocztowe: - Google Workspace: klucz konta (JSON) dla IMAP w całym kraju. - IceWarp: host pocztowy, hasło skrzynki pocztowej, ochrona transportu. - Wymiana (na premię BASIC/NTLM): host poczty, hasło skrzynki pocztowej, transport Bezpieczeństwo.

  9. · EmailService

    Trasę ze wszystkimi dostawcami usług w chmurze przez IMAP/SMTP z OAuth2 (XOAUTH2)

    Dostawcy usług w chmurze (Microsoft 365, Exchange Online, Google Workspace, Zoho, IceWarp) Odziedziczony odczyt/wyślij od - ale demotywator nigdy Zamieszane poświadczenia IMAP/SMTP dla nich, więc każdy folder / wiadomości rzucony MailboxNotKonfigurowana wyjątek -> ekran "email nie skonfigurowany" (np. org Opcjonalnie na M365). KamoMail pracował tylko dlatego, że sam otrzymał poświadczenia (wewnętrzna Dovecot). Teraz wszyscy dostawcy płyną przez jedną ścieżkę IMAP/SMTP; KamoMail pozostaje bez zmian. - MailCredentials: pełny plik połączenia - ImapStoreFactory + EmailSmtpSUłnia: SASL XOAUTH2 (native com.sun.mail) lub podstawowe Auth per spec; STARTTLS wymagany (zamkniętych w nieudanych), więc żetony nigdy nie tranzytują wyraźnego tekstu. - MailProviderResolver: per-provider okablowanie poprawne + domyślna skrzynka poczta użytkownika + OAuth token odświeża. M365/Exchange-Online używane tokeny tylko dla klientów (outlook.office365.com; - najemca pochodzący z Domena skrzynek pocztowych; Google używa delegacji obejmującej całą domenę service-konta; Zoho używa Przechowany token OAuth; IceWarp/on-prem Exchange używa podstawowej auth od dostawcy config. - EmailImapService: rozwiązanie Wysłane / Trafty przez RFC 6154 SPECIAL-USE w ten sposób wysłane kopie ląduj w natywnym folderze dostawcy (Gmail [Gmail]/Gmail]/Wysłana poczta, Exchange Sent Items). - Dostawca Kontroler: upolać pola formularzy konfiguracyjnych w zaszyfrowanym configJson (wcześniej upuszczony); możliwości listy bez wybijania żetonu. - Usunięto rzucanie RealtimeNotifier od dostawców usług w chmurze (okładki do polowania Czas w czasie rzeczywistym; brak push-webhook infra). M365/Exchange-Online wymaga zastosowania IMAP.AccessAsApp + SMTP.SendAApp z administratorem Zgoda i New-ServicePrincipal w programie Exchange Online (skopowalna na skrzynkę pocztową).

  10. · kamo-internal

    Deal-scope a skarbiec przesyła z zakładki Dokumenty konta

    Okno dialogowe przesyłania oferuje teraz opcjonalny selektor "Deal" (konto” transakcje); wybór jednej znaczków pożyczkiTransactionId więc dokumentalny uwzględniający czas (kredyt Raport, wyciągi bankowe) jest związany z tą transakcją i zaspokaja tylko jej pożyczki – podczas gdy "Account-wide" utrzymuje ponadczasowe ponowne wykorzystanie dokumentów tożsamości. Uzupełnia to, co Model dokumentu z transakcji end-to-end. Zweryfikowano: tsc --noEmit czyste.

  11. · SecurityService

    Przesłanie Vault może deal-scope dokumentu (loanTransactionId)

    Wściekły przelewa teraz konto w sklepieniu akceptuje opcjonalną pożyczkęTransactionId, opieczętowaną na MemberDocument więc może być związany doc wrażliwy na czas (raport kredytowy / wyciąg bankowy) Do konkretnej transakcji – strażnik satysfakcji stosuje ją tylko do tej transakcji Pożyczki. Pominięte - ponowne wykorzystanie konta (niezmienione). Powierzono na MemberDocumentDTO. Zweryfikowany: mvn kompiluje czysto.

  12. · kamo-internal

    Przełącznik tła na urządzenie — pokaz slajdów zwykłych gradient lub org

    Dodaje przełącznika dwóch ikon w prawo (pod pigułką próbną; wznosi się do pigułki Po zakończeniu próby) aby wybrać tło konsoli: - Plaży (domyślny, najlepsza wydajność) — istniejące tło oklab-blob. - Org photo slideshow — ponownie wykorzystuje te same zasoby tematowe, na stronach logowania/rejestracji użycie: "themePath>/json/config.json's backgroundImageCount" ?themePath>/img/bg/?n?.webp, wstępnie załadowane 404s upuszczonymi i wyfałczonymi krzyżowo (szacunki preferowane w ruchu redukowane; Opada z powrotem na pole proste, jeśli nie usunie obrazów). Wybór jest zapisany PER DEVICE w localStorage (useBackgroundMode), nie Po stronie serwera, ponieważ jest to wybór rendering / perf, który powinien pozostać lokalny. Thezy poskładni po tym, w, w pot wt pot wt pot wt. w zd. w tym, że ponto to, w tym, o., w pot wt. w tym, a w tym, o. w tym, że powt. w tym, a w tym, o., w tym, pow., w tym, a tym, w tym, posą o., w po Podzielone Backdrop honoruje go (dom + ustawienia); toggle is życie w domu. Każdy z nich Ikona ma podpogląd narzędzi. Nowe domowe. oparcie. ciągi wysłane do słownika.

  13. · SecurityService

    Zamrozić migawkę inicjatora przy początkowym oszacunku pożyczki (Reg Z/TRID)

    Ukończy cykl życia inicjatora: wspólny determinacjaProjection() teraz karmi również Projekcja odczytu na żywo i zamrożenie (bez dryfu). Po wydaniu NICTIAL_LE ujawnienia Zestaw, HiptgageOdkrywanie Kontroler zamraża as-riginated LoanOriginator — przechwytywanie Prowizorowane LO + org + alicencja państwowa na wiersz WORM i stemple zamrożoneAm/ ZamrożonyState (idempotent; ochraniacz do wersji wstępnej blokady ochroniski zamrożonej). Po tym Zmiana nazwy org/LO nigdy nie zmienia tego, z kim pożyczkobiorca pochodzi. Sprawdzone: mvn kompiluje czysto.

  14. · kamo-internal

    Pierwszy rurociąg transakcji — PrimeReact rozszerzalne rzędy

    Zastępuje płaską sieć kredytową PrimeReact DataTable of TRANSACTIONS, która się rozpoczyna Zawalił się i rozszerzył w miejscu w miejscu do pożyczek członkowskich (nie szuflada dwukliklowa), więc Steward otwiera konkretną pożyczkę bezpośrednio. Kolumny dla rodziców: Transakcja, Stan transakcji, Pożyczki, Pożyczki, Target Zamknij; rzędy dziecięce: Pożyczka, Pożyczkobiorca, Własność, Kwota, Status, otwarty. Pożyczki sierocejowe udzielane jako rzędy z pożyczkami. Przechowywanie wyszukiwania, filtr stanu, Eksport CSV, Nowy i Punkty wejścia Zarządu / HMDA. PrimeReact 10 (MIT). Również commits Specyfikacja projektu refaktor. Zweryfikowany: tsc --noEmit + następna kompilacja obu czystych.

  15. · kamo-internal

    Ponowne dodanie pigułki próbnej najwyższej prawicy (kolorowa pigułka NavPri)

    Utrzymuje linię próbną w pasku stanu masztu i ponownie doda wybitną pigułkę W prawym górnym prawicy więc tryb próbny orgii pozostaje oczywisty. To NavPri rozszerzył się Pigułka próbna z wypełnieniem / tekstowymi kolorami zamienionymi (pierwotne tło, biały tekst/icon) przy użyciu tej samej etykiety; Tylko dla personelu (TEAM_MEMBER) o uprawnieniu TRIAL.

  16. · kamo-internal

    Żywe "wstawa między" podczas przeciągania, a nie tylko drop-to-swap

    Wcześniej zamówienie zmieniało się tylko na upuszczeniu, więc odczytywane jako zamiana na gniazdo. Teraz lista ponownie przepływa na żywo, gdy się przeciąga: dnd-kit onDragOver przesuwa ciągnięte Możliwość gniazda nawiedzonej opcji (arrayMove), więc członek widzi dokładnie Gdzie wyląduje między innymi. useHomeLayout.move advances jego order ref Synchronicznie tak poniedziałkowe zdarzenia przeciągania komponują się prawidłowo i bierze Zapisz flagę, więc podgląd na żywo pisze; ostateczna kolejność trwa raz Upuść przez nowe commit().

  17. · kamo-internal

    Przełącznik z zapożyczaną przez rodzeństwo w widoku aplikacji

    Transakcja może ugrupować wiele pożyczek; nagłówek aplikacji pokazuje teraz przełącznik, aby skoczyć Pomiędzy pożyczkami dla rodzeństwa (ukrytymi dla transakcji jednonoustawowych), a nie tylko Jest dostępny przez rurociąg. Zweryfikowany: tsc --noEmit czyste.

  18. · kamo-shared-library

    LoanFileDTO.loan TransactionId (pogląd aplikacji zna się na jego umowie)

    Powierza transakcję pożyczki, aby widok /aplikacje mógł pokazać/switch rodzeństwo Pożyczki. Zweryfikowany: mvn zainstaluj czystą.

  19. · kamo-internal

    - (typ FE)

    Lustra w pole zaplecza dla kolumny rurociągu Transaction. Zweryfikowany: Tsc --noEmit czyste.

  20. · SecurityService

    Transakcja powierzchniowaNaLiczba na TransactionSummaryDTO (Transakcja pipelinowa)

    Rząd rurociągu per-aaction przenosi teraz numer transakcji ludzkiej. Zweryfikowany: Mvn kompiluje się czysto.

  21. · SecurityService

    Projekcja inicjatora rozwiązuje licencję na stan

    Zakończenie projekcji inicjatora na żywo: przydzielona LO's StewardLicense (NMLS_MLO) dla stanu PROPERTYA SUBJECT (od property.address.subdivision, Znormalizowany do ISO-3166-2), obecnie ważonego, obecnie zaludnia originatorStateLicenseId. Zweryfikowano: mvn kompiluje się czysto.

  22. · kamo-internal

    Przeciągnij i upuść, aby zmienić unieruchomonie opcje wyrzutni, zapisane na członka

    Członkowie mogą teraz zmienić kolejność opcji domowych, przeciągając, a umowa jest Utrzymano serwer na członka (przepuszcza przeładowuje i podąża za nimi Urządzenia) poprzez te same ogólne uipreferencje przechowują używany układ nawy — nowy "homeLayout" klucz z zamówionych idów opcji. - useHomeLayout (dostępne Ids) ładuje przechowywane zamówienie, łączy je z Obecnie wybrane opcje (nowe opcje dodają się, usuwają je upuszczają) i utrzymują się Reorders z optymistycznym, znieważeniem PUT - " - dnd-kit DndContext nad murem: MouseSensor (5px) + TouchSensor (250ms) Tak więc szybkie kliknięcie nadal otwiera kartę / jej podpunkt, podczas gdy prasa ciągnie Przestawia się (tylko punktowe, jak navs). Reorder commits na kropli Cel zrzutu pierścieniuje. FeatureCard dostaje draggable-false- tak natywny link-drag Nie walczy z dnd-kit.

  23. · kamo-internal

    Wykonaj Materiały na pierwszą zakładkę + domyślne lądowanie;

    Usunięta zakładka przegląd; Materiały są teraz pierwsze. Indeks /market przekierowuje do pierwszego Dostępna zakładka (Materiał domyślnie), więc każdy otwierający marketing ląduje na Materiałach.

  24. · SecurityService

    Projekcja inicjatora na żywo – org + przydzielona LO, na czytaj

    GET / aplikacje zrytowania / euidy nakłada teraz na żywo, zarządzaną przez system projekcję originator (w odczytywane, nigdy nie przechowywane), chyba że wiersz jest zamrożony: org/NMLS/adres from Organizacja i nazwa pożyczkodawcy/NMLS/teamMemberId od członka ASSIGNED do Transakcja pożyczki (nazwa prawna za pośrednictwem User.EmbNameFull.formatFull(), NMLS via via Member.nmlsId). Stale wprowadzona ręcznie tożsamość jest oczyszona – sekcja odzwierciedla tylko - źródło prawdy. Zamrożony rząd (początkowa LE) to migawka WORM, pozostawiona nietknięta. Pozostanie dla pełnej projekcji: StewardLicense na stan (potrzebuje tematu Stan na wykresie aplikacji) i spust zamrożenia przy początkowej emisji LE.

  25. · kamo-internal

    Sekcja Pożyczkomani Originator jest czytelna / zarządzana tylko w systemie

    Karta Pożyczkocia Originator nie jest już ręcznie edytorem danychA ?9 (obniszowanie - To było ponowne uchwycenie). Oddaje tylko do odczytu: Projekcja LIVE przydzielonego urzędnika pożyczkowego + org przed Pożyczką początkową Szacuj, a następnie zamrożona migawka po (frozenAt/frozenState/źródło Teraz na LoanOriginatorDTO). Usuwa edytowalne wejścia + odparte patchOriginator Autosave. Projekcja zapasowa / zamrażanie ląduje dalej (SecurityService).

  26. · SecurityService

    Przypisanie pożyczkowo-udziałowe na poziomie transakcji + numer transakcji

    Upewnij się, że TransactionForApp oznacza teraz numer lub nieuniknioną (TXN-auid>). Nowość + PUT /mortgage-apps/transakcyjne/ "uid"/oficer wypożycza ustawia przydzielonego urzędnika ds. wypożyczenia (członko.id, odziedziczonego przez Wszystkie pożyczki na dzieci) — pojedyncze źródło, które będzie napędzać zarządzane przez system Projekcja / snapshot (oryginalnik nigdy nie jest ręcznie wprowadzany). Operator- Ogłuszony, org-scoped.

  27. · InitializerService

    Kolumny inicjator/transakcja-pierwsza (zarząd 90)

    Dodakowe kolumny nullable + lub nieunikniony indeks liczby transakcji dla MLOS Pomysłodawca/reaktor transakcyjny: mlosos_loan_transaction (transakcja_numer + przypisane_lo_a, kredyt_originators (frozen_at/zamrożone_państwowe znaczniki WORM), mlos_member_document (loan_transaction_id deal-binding). Idempotent.

  28. · kamo-shared-library

    Pomysłodawca/transakcja - LO przydział, Zamrożenie WORM, docs-scoped

    Kołowrotka dla zarządzanego przez system inicjatora + rekuktor transakcyjny (specjalizacja 2026-07-08): - Transkredytacja: transakcjaLiczba (powtarzalny) + przydzielonyLouficerMberId (+ audyt) — przydział LO na poziomie transakcji, który napędza źródło pierwotnego Projekcja, odziedziczona przez wszystkie kredyty na dziecko. - LoanOriginator: mrożonyAt/frozenState + ?Uaktualnia WORM guard — originatorem jest Projekcja LIVE przydzielonego członka/org do początkowego Szacunku Pożyczki Problemy (Reg Z/TRID), a następnie niezmienny, as-riginated snapshot. LoanOriginatorDTO nawiązowomyślny ujawnia mrożoneAt/frozenState/source (LIVE|SNAPSHOT). - MemberDocument: loanTransactionId-wiązanie transakcji - doc skarbca wrażliwy na czas (Raport kredytowy, wyciąg bankowy) jest transakcyjny; NULL - konto o czasie. Walidalność czasowa pozostaje regulowana przez istniejącą FreshnessPolicy (NOT zduplikowaną). Projekcja/zamrożenie/zamrożenie / przypisanie Logika przydziału w SecurityService (co zależy od obu Niedomodifikowanie i mlos), nie tutaj — zablokowany rdzeń pozostaje mlos-decoupled.

  29. · kamo-internal

    Dodawanie Filtr produktu zależny od Sprzedawcy

    Dodaje filtr produktu do paska filtrów /liads, natychmiast po prawej stronie Filtr sprzedawcy. Zachowuje się jak para Status/SubStatus: wyłączona, aż do Wybierany jest sprzedawca, jego opcjami są produkty należące do wybranych Sprzedawca, i to oczyszcza, kiedy sprzedawca się zmienia. Filtr po stronie klienta Predicate i stan filtra już istniał; to przewody w górę zwichania.

  30. · kamo-shared-library

    Shared AusEngineClassifier — jedno źródło prawdy dla mapowania agencji nr 8,2

    Program-silnik, run-silnik i decygate - mapowanie były lokalne do - rynki kapitałowe-zamek AUS hard-stop Potrzebna identyfikacja klasyfikacja, a brama fair-lending nie może mieć dwóch Kopie, które mogą dryfować. Wyodrębnij trzy czyste mapki (statyczne, wyczerpujące przełączniki” Kompilacja kompletności wymuszona / 8,2 . . . Rozwiązczy cen, teraz delegaci Do niego; LockStageAusGate wykorzystuje to samo. Dodatek, bez schematu.

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