Changelog
Co nowego.
Każde ulepszenie platformy, jak to wysyła.
· kamo-internal
Zakładka zasad — efektywne ustalanie cen/kapitał/konfiskat
Nowy MortgagePoliciesTab: aktualna wersja aktywna + publikuj-new-version form + wersja Historia dla każdej z trzech skutecznych polityk; configTypes/configApi + zakładka Rejestracja.
· SecurityService
Skuteczne polityki profilowe — ceny/kapitał/powoce publikują
Nowy MlosPolicyWriteService (izolowany; jego własny repos, więc konfiskata pisania-pis- Usługa jest nietknięta: jednoaktywne wersje demote-then-wstawianie w ten sam audyt - Kręg. Kontroler / polityka cenowa, /kapitalna polityka, /servicing-policy GET (current+ Historia) / PUT (publikowanie nowej wersji). ServicingPolicy SCRA/FDCPA pozostają prawdziwe.
· kamo-shared-library
Wersjonowany interfejs profilapolityczny dla skutecznych polityk
Pricing/Capital/ServicingPolicy wdrażaj go, aby jeden z nich publikować rutynę napędza Jedno aktywna wersja demote-then-wstaw.
· kamo-internal
Dostawa inwestora + podochłom zasady zobowiązania
Rozszerzony rząd inwestorski zyskuje Delivery (chutwieranie finansowania / ścieżka wykonania / Przekazuje) i Edytorzy / min pull-through % / pair-off) redakcji obok Delegacja + nakładki; configTypes/configApi + połączenia.
· SecurityService
InvestorConfig delivery + pod-zbiory zasady zobowiązania CRUD
(+aktualizacja / usuń) na kręgosłupie konfiskaty D31 (org-zamknięty za pośrednictwem inwestora macierzystego, WORM change-log per wiersz); kontroler /inwestorzy/-dostawy-zasady + / wiązanie-zasady GET/POST/PUT. Ukończy ostatni Podpobieranie podpojazdów InvestorConfig odroczonych od [04].
· kamo-internal
Inwestorowa nakładka kredytowa podredator
Rozszerzony rząd inwestora kredytów hipotecznych firmy MortgageTab zyskuje OverlayEditor (FICO/LTV/DTI// Rezerwy/dodokręcanie/geo + komparator + opcjonalny program + efektywne okno) Wraz z redaktorem delegacji; configTypes/configApi typu nakładkowe + połączenia.
· SecurityService
InvestorConfig nakładkę nakładkę nakładkę CRUD
- na grzbiecie konfiskaty D31 (org fail-closed przez Inwestor macierzysty, WORM change-log per row, configVersion defaults 1); kontroler /inwestorzy/przekładki GET/POST/PUT (delete via active:false). Uzupełni to, co InvestorOverlay plasterek odroczony od [04].
· kamo-internal
Prawy podnav + tekst o wysokiej prawicy + wyższy
- Przesuń odcinek podnav z lewej do prawej, zręcznego, pełnego wysokości panelu Przewija się niezależnie; nagłówek + zawartość formularza przybierz pozostałą szerokość Po lewej stronie i przewijaj się samodzielnie (dwa niezależne regiony przewijania na md+; Stosy z nav na górze dla wąskich ekranów). - Dostępność: zaciemniaj wszystkie tekst wtórne / etykietowe (gray-400 -> szary-600, szary-500 -> szary-700) na stronie szczegółów + udostępnione pole/sekkcjaCard/ EmptyState prymitywy, więc etykiety spełniają kontrast WCAG AA dla użytkowników o niskiej wipatrzenie.
· kamo-internal
Rurociąg pożyczka jako podtatata Mortgage + light theme
- Dodawanie ApplicationsPipelineConsole: a /line-style advanced AG-Grid datagrid o wnioski o kredyt hipoteczny na poziomie kredytu (zakłady filtrów statusu, wiersz filtrów, Szybkie wyszukiwanie, eksport CSV, pagination, row -> detail). Przewodowy jako ostatni Sub-tab konsoli Sterwarda Kredytu Hipotecznego (sub-pipeline). - Re-theme /applications/[uid] detail + shared Field/SectionCard/Modal EmptyState prymitywy + wszystkie 14 sekcji od ciemnego tematu marynarki wojennej do Lekki idiom wewnętrzny kamo; zamień pełnoprawnego bohatera przepływem Bar nagłówek (naprawia nakładanie się nagłówka / treści). - Ponowne /aplikacje/pipelina (kanban) i /plikacje/hmda-lar do światła. - Usuń przestarzały samodzielny /plikacje ciemnej listy; punkt powrotny QuickActionsBar 'Nowa aplikacja' do podtaku gazociągu hipotecznego.
· kamo-internal
Platforma Panel kalibracji inteijsko-gornogowej (D4 5.C)
Zaawansowana zakładka zyskuje panel gubernatora: edytuj platformę - domyślnej postawy kalibracyjnej (brama administratora / force-steward-dokonalifikacji / min próbek, Każdy Inherit|Enabled|Disabled) za pośrednictwem nowego Governor-config API. Per-org nadpisuje warstwę na górze.
· SecurityService
ScenarioOdkrywczość — geneza profilu kanonicznego przy tworzeniu/aktualizacja aplikacji (D1)
HipoteageAppController (re)produkuje kanoniczny PożyczkobiorcaScenarioProfil poprzez nowy ScenarioDiscoveryService po : (best-effort, Własny tx). Dodaje mlos.intake do .EnableJpaRepositories.
· kamo-shared-library
LOAN doc osłona (D2), adapter konwencji znaków (D3), konfigurator per-org Governor (D4)
- ImageService: wymagaj pliku do pliku ImageAssocType.LOAN uploads (LOAN-scoped; KONTO/SERWIS_ w niezmienionej formie). - SignedAdjustmentAdapter: adapter/zacisk dotyku reguł-7 (kanoniczne regulowanie - podpisane wartości) dla migracji stopniowego znaku ikonencji. - AutonomyGovernorConfig + repo + GovernorConfigResolver (org > Platforma-default Sterobsługa); DbAutonomyGovernor rozwiązuje teraz kalibrację / obłąkanie naorg.
· kamo-internal
Zakładka połączeń aumerykańska (D37) + blok 2nd rynku kredytów hipotecznych (D38)
- MortgageAusConnectionsTab: org-scoped DU/LP/GUS conedfig (pojedynie na jeden); Tajna jest pole hasła tylko do zapisu, wiersz pokazuje tylko, czy poświadczenia są ustawione. - Strona noworynkowa: wyłączenia opcji MORTGAGE + waliduj, gdy org ma jeden.
· SecurityService
Powierzchnia zapisu konfiction AUS-connection (D37) + jednolity rynek kredytów hipotecznych na org (D38)
- MlosConfigWriteService - org-scoped (resolveProfile), Wyjątkowość na AusKind, tajny zachowany na cieśle-tajnych edycjach, WORM audit kręgosłup. - MlosConfigController /aus-connections GET/POST/PUT — sekret jest tylko napis (zaszyfrowany za pomocą PlatformSecretCipher wewnątrz mutacji); widok eksponuje maCredential, nigdy szyfrogram. - odrzucić drugi rynek MORTGAGE na org (409).
· kamo-internal
Podredytator delegacji inwestorów — organ perprogramowy (D39)
Zrezygnuj z delegowanego przełącznika / kolumna; każdy rząd inwestora rozszerza się do programu na program Edytor delegacji (program UUID, pusty - domyślny dla inwestorów; DELEGATED/ NON_DELEGATED) poparł nowy /inwestor/-delegations API.
· SecurityService
Powierzchnia zapisu delegacji inwestora — program CRUD (D39)
Upuść delegowanyAuthority z InvestorConfig write/view; dodaj Podpobieranie podwyżek inwestorskich w podmiocie /investors/delegacje (GET/POST/POST/ PUT, usunąć przez active:false) na spince konfiskatowe D31 - org-zamknięty Za pośrednictwem inwestora macierzystego, WORM change-log + profilVersion bump na wiersz.
· kamo-shared-library
Delegacja inwestora na program (D39) — nowe dziecko InvestorDelegation
Delegacja jest granulowana na (inwestor, program), a nie gruby InvestorConfig Boolean. Dodaje DelegacjaAutorytorka ?DELEGATED, NON_DELEGATED, the Podmiot delegacji (mlos_investor_delegation, opcjonalny programId; null Domyślność całego inwestora) + repo, i spadki
· kamo-shared-library
[AUS] Połączenia AusConnectionConfig — zaorg na rynku połączenia DU/LP/GUS
Dyrektywa właściciela nr 6: każdy org konfiguruje własne API dostawców AUS (Fannie DU / Freddie LP / USDA GUS) na rynek kredytów hipotecznych, w ustawieniach-handel. Podstawowy model danych: AusConnectionConfig (mlos.config, nowy stół mlos_aus_connection_config) — jeden wiersz na jeden wiersz (profil litrowy, AusKind); ponieważ tel.Profil jest jedno na rynku, keying przez PożyczkodawcaProfileId robi te na rynek. Ponowne wykorzystanie istniejącej enum AusKind (DU/LP/GUS) Słownictwo VendorCategory.AUS zamiast wymyślać nowe. Sekretny w spoczynku: sekret API jest przechowywany TYLKO jako sekretny program AES-256-GCM (zaszyfrowany przez PlatformSecCipher na write, mirroring SocialConnection/ PlatformOAuthClient) i nigdy nie jest w DTO – czyta ekspent w rzeczywistości. klientId/endpointUrl/configJson nie są tajne. Unikalny (profil, aus_kind). Backend write/controller + kamo-internal Zakładka połączeń aumerykulowych + i18n + KI (nowa tabela) build on this next; na rynku vs Usuwanie org-scoped jest decyzją konfiguracyjną wyłanianą się dla właściciela.
· kamo-shared-library
[ImageAssocType] doda się do LOAN — zdjęcia dołączają do pożyczki, wymagany typ dok
Dyrektywa właściciela: obrazy można przymocować bezpośrednio do kredytu hipotecznego, zawsze za pomocą Odpowiedni typ doc. Dodaj LOAN do ImageAssocType (id 11, bucket imaging-loans), Odzwierciedlanie flagi zbiorem dokumentów: jestAllowDocType-true + isAllowDocTypeOpt-false, więc wymagany jest typ dokumentu kredytowego i NIE org- Opcjonalnie. Dodaj do koszykaDocType() (isAllowDocType & !isAllowDocDoyp) Ścieżki egzekwują "zawsze typu doktora". Bezbronne z NO KI/schema change: Img.assocId nie ma ’Enumerated (defaults Do ORDINAL) i nie ma ograniczeń CHECK, więc dostosowywanie w END zachowuje każdy Istniejące rzędy (strat testowy LOAN-is-last). 3 testy na zielono. Skoordynowane działania następcze (podana pod bandera): (1) podawanie wiadra MinIO polinie obrazowego za pośrednictwem KlusterServices przed pierwszym wypożyczeniem-doc; (2) odbuduj ImageAssocType Konsumenci (DocsSService robi wartości()[id] — muszą znać LOAN przed przybyciem id LOAN: - podnieś go na ich następna budowa CI); (3) egzekwowanie wymagaDocType() na ścieżce zapisu wypożyczenia-doc.
· kamo-shared-library
[sign-convention] walidatory znaków pieniężnych + model korekty
Zgodnie z przepisami kanonicznymi właściciela. Podstawowa domena pieniędzy nigdy nie koduje znaczenia w znaku: - - / requirePositive — aktywa, należności, Zobowiązania, zobowiązania, opłaty, koszty, kredyty są wielkością dodatnią we własnym zakresie pola (reguły 1-3); wartość ujemna szybko się nie udaje. - Przekąt regulacji, DECREASE, CREDIT, DEBIT, PREMIUM, DISCOUNT — stawka/ Korekty cenowe (LLPA, SRP, korekty cenowe, koncesje, rabaty) ujawniają Wyraźny kierunek, nigdy podpisany numer (reguł 5). - + samowtniący zapis dostosowań — odrzucić wielkość, której znak jest sprzeczny z deklarowanym kierunkiem (reguła 6); Podpisana korekta nie może być skonstruowana. Reguły 4 (księgowanie +/- życia tylko w warstwie GL) i 7 (przypisywanie tylko w adapterze Warstwa) są granicami architektonicznymi, które straż wytycza, żyjąc w CORE i odrzucenie podpisanego kodowania – konwersja korygujący dla inwestora/magazyna/ Rachunkowość / MISMO pozostaje poza domeną w budowie. 4 testy zielone.
· kamo-shared-library
[?5.A] Pożyczkobiorca kanonicznyScenarioProfil + ProductDiscoveryGate
Zgodnie z dyrektywą właściciela nr 5.A: ScenarioSupportPolicy musi konsumować kanoniczny Profil Scenariusza Pożyczkobioru generowany z znormalizowanego adresu URLA dane, nigdy surowe formularze/UI, i przyszłe źródła (AUS/OCR/AI/manual) AKTUALIZACJA, a nie kanoniczna rekord Obejdź go. - PożyczkobiornikScenarioProfil (mlos.intake, nowy stół) Pojedyncze źródło prawdy na rzutkę — 5 typowy URLA przyciemnia się + rozszerzalny Obliczone fakty JSONB + ostatnia wersjaźródłowy. Zmutowanie ( prawda akretes), skontrolowane przez źródło +version. - BorrowerSenarioProfilSprzesunek: produktFromUrla(loanFile, orgId) jest genezą (czytaj znormalizowaną pożyczkę/Własność natychmiast po normalizacji adresu URL); aplikujAktualizacja Jest to TYLKO cieżowe późniejsze źródło (nie ma głośno, jeśli nie istnieje żaden profil – geneza jest URLA jest sama, egzekwująca aktualizację-don't-bypass); toSupportProfile wyświetla 5 dims. - ProductDiscoveryGate: ściana prawna nr 5.A skonsultowana PRZED kwalifikowalnością/ceną – Ustala ScenarioSupportPolilicy (przypisuje się przez dziesiętnika + kod) przez kanoniczny Profil i, w przypadku odmowy, rejestruje WORM AiDecision skierowany do stewarda (NO_ELIGIBLE_PRODUCT, legalnie wymagaHuman; DEFERRED_HARD_STOP-HIGH, STEWARD_ONLY? MEDIUM) poprzez fakultatywny DecSpine. Wspomagane nic nie pisze. 10 testów zielonych. Budowanie i flaga: wymaga KI run (nowy stół) + okablowanie przepływowe (cotwórzOdUrla na haku do normalizacji URLA + gate.valuate na produkt-- Wejście do odkrycia) w usłudze własnej.
· kamo-shared-library
[12] nr 5.A ScenarioSupportlicyPolilicy deferal-interlock (D36)
Doc 12 line 235 P0 – „najtańsza dodatek w cyklu życia o najwyższym ciągu użytkowania”. Ściana prawna W zakresie odkrycia produktu, które powstrzymuje od Cicho biegnący jako do przodu pierwszoligowcy (niewłaściwe ujawnienia). ScenarioSupportResolver (czysty ?Component) mapuje ScenarioSupportProfile (LoanType x x Cel Amortyzacja x Budowa, istniejący donotmodify URLA enums) WSPARCIE | STEWARD_ONLY | DEFERRED_HARD_STOP. Matryca domyślna (D36): WSPARCIE - agencja forward / non-QM FIRST-lien zakup/refik z amortyzacja standardowa (jak pokrywają silniki deterministyczne); STEWARD_ONLY Uznane, ale poza nim, a człowiek może pochodzić (subordinate/HELOC, budownictwo/dom- Poprawa, GPM lub dowolny INNE - odwrotny / komercyjny połów, od momentu zamieszkania URLA enums nie ma dla nich wartości); DEFERRED_HARD_STOP - nie zamknięciu, gdy krytyczny - Mrocz miełość. Sztuczna inteligencja nigdy nie uruchamia automatycznie produktu nie-v1. GDZIEń (najemca) ScenarioSupportPolicy nadpisuje warstwa rzędów na górze (najbardziej specyficzne wygrane meczów, najnowsze Wersja łamie krawaty; null dim - dzika karta), aby otworzyć produkt na WSOPORTED lub utwardzać go Do DEFERRED_HARD_STOP. 13 testów na zielono. Budowanie i flaga: openr + jednostka wysyła teraz; odkrycie produktu WIRING (konsultacja Przed kwalifikacją + emituj AiDecision on odmowę) i KI dla mlos_scenario_support_policy Są kontynuacją (potrzebuje biegu KI – biorców).
· SecurityService
[08] ReconciledFactPublisher — los.pipeline.fact publikuje szwy (D34)
Doc 08 3,3: zablokowane - nie może uzyskać NATS Wydawca (który edytuje donotmodify). Dodaj nieblokowane Owijanie ReconciledFactPublisher To godzi, a następnie na niezero liczba zmian emituje los.pipeline.fact.orgId> na Istniejący strumień LOS_PIPELINE (los.pipeline.> już go wiąże – nie ma nowego strumienia/ Stół), więc pętla gotowości może strzelać. Przypomnij sobie ponownie jedynego rozmówcę (MortgageConnectController’s gol endpointpoint) na owijaniu; zamknięta usługa Jest nietknięty. Umieszczenie (D34): współlokacja w SecurityService z jedynym obecnym dzwonieniem, a nie w MLOSCapitalMarketsSService jako 3,3 punktu widzenia wstępnie sugerowane (które zakładały stronę RCE dzwoniąca, która jeszcze nie istnieje). Wymagany niewariant – nigdy nie publikuj od wewnątrz Zamknięta usługa – trzyma się w obie strony. Najlepszy wysiłek, taki jak LosPipelinePublisher: nieobecny NATS lub awaria publikacji jest rejestrowana + połknięta, liczba jest nadal zwracana. 4 testy Zielony.
· kamo-shared-library
AutonomyGubernor — kill-switch + force-steward-do-kalibowany (D32)
DecisionGate ma już GLOBAL statyczną siłę-steward, ale 5.C Potrzebne są dwie rzeczy, których nie może dać: przełącznik zabijania flippable BEZ przesunięcia (tak więc DB-backed) w GLOB/Inteligentna ziarnistość GLOBAL/TASK_TYPE i siła-steward-do-N- Kalibluzje kalibracyjne na typ zadania (niekodne maszyny do kalibracji P0 Degeneruje się podczas startu — doc 12 Theme C / 6,1 .). AutonomiiGernor (rządnica pkg) jest OPTIONAL Docstor (ObjectProvider, Zamknięty na mlos.governor.enabled) skonsultowano się z synchronicznie przez DecisionSpine.record() - taki sam kształt jak StewardAssigner. Jest to ADD-ONLY, dokładnie tak, jak lawin: Może tylko zmienić niedoszłą AUTO_EXECUTE w ROUTE_TO_HUMAN, nigdy nie podnieś routingu, Tak więc czysta/bezpaństwowa DecisionGate jest nietknięta. Dwa warunki siły: a) a Aktywny AutonomyKillSwitch matching (orgId, aiFunction) — najszerszy zakres wygrywa powód; zmienny/wydzielony podmiot, NOT WORM, skontrolowany za pośrednictwem zaangażowanego/at; b) Kalibracja bootstrap — nietestowana liczba StewardFeedback dla aiFunction poniżej min-samples (default 50), liczony przez nowe zapytanie o połączenie. Kiedy i kiedy Gubernator jest przyczyną routingu, jego powód jest dołączony do WORM AiDecision Tak więc decyzja o wysokiej pewności siebie, która trafiła do człowieka, nigdy nie jest niewytłumaczalna. Nowy tabela autonomiczna_kill_switch (addytive DDL — KI run). 30 testów zielonych (7 gubernator Logika + 3 dodatkowa integracja + 6 kręgosłupa + 14 bramki); wszystkie cztery DecSpine Zachowani ektorzy (istniejący rozmówcy bez zmian).
· kamo-internal
[04] zakładka nakładów ryzyka — kredyt/geo/warstwy narażeniowe (D31)
Nowa zakładka konficka na rynku MORTGAGE dla nakładów ryzyka na dziesiętnika: kategoria (pudełko kredytowe / koncentracja geo / rodzaj nieruchomości / kwota pożyczki / oszustwo / limit narażenia) + działanie (denyy / poleca / kontroferta / flaga) + opcjonalny zakres właściwości produktu + Efektywne okno + opcjonalne wyrażenie reguły JSON (zatrożone dla renacjonalności Po stronie klienta, odbicie serwera 400). Dodawanie / usuwanie wierszy; usuwanie jest twardym usunięciem. Rendery po Inwestorach, przed zakładką umów zawsze widniejowych. configTypes/configApi Odzwierciedla wzór kolekcji D31; i18n poprzez repo ewolucyjne kamo-translation-dictionary.
· SecurityService
[04] kawałek E2 kolekcja RiskOverlay CRUD (D31)
Nakładki na ryzyko (piwnik kredytowy / geokoncentracja / geokoncentracja / limit ekspozycji na bazowe pudełko kredytowe) jako zbiór konfiskaty na kręgosłupie D31: utwórz domyślne confiVersion 1 + stemple identyfikuje profil + profil guzkówWerność + validate-or-- Cofa + dopala WORM MlosConfigChangeLog; aktualizacja / usuwanie są zamknięte 404 W wierszu innego profilu; usunięcie jest twardym usunięciem, audytemowanym jako "usunięty":true. Reguła Wyrażenie jest kolumną JSONB — kontroler parseiduje ją jako JSON Przed zapisem tak złym wejściem jest czyste 400, a nie 500 mid-INSERT. Null/blank (ang.) Jest dozwolony (słownictwo regułowe jest warstwą odroczoną, na razie przenoszona poza pałą). 20 testów write-spine green (4 nakładka + 4 inwestor + 6 licencji + 6 licencji + 6 etapów).
· kamo-internal
Zakładka inwestorów MORTGAGE (lista/add/usuzy) — [04] plasterek E2 (D31)
Siódma zakładka konfiskaty MORTGAGE: per-inwestor Władza z chipem aprobaty i statusu. Dodawanie przez wiersz inline (kod + status + Opcjonalnie - usunąć przez śmieci (twarde usuwanie Po stronie serwera). configTypes InvestorView/InvestorRequest + 3 tablice enum + etykieta Pomocnicy; configApi - zarejestrowany jako zakładka 'inwestorzy' Po licencjonowaniu, przed umowami. Angielski poprzez tłumaczenie-sektor repo. tsc clean.
· kamo-internal
Ujednolicony termin czasu społecznego UI w /marketing/social
Żywy, animowany kanał cross-provider ponownie wykorzystuje styl karmienia klubu: zwirtualizowany oś czasu, chipy filtracyjne dostawcy, SocialPostCard (odpowiedź/reakacja/usuń), Multi-provider SocialComposer (powody możliwości dla dostawców + chipy wyników fan-out), NewPostsPill (bez autoscroll), użyj SocialFeedWebSocket na żywo /topic/social/feed/?orgId, oraz trasy proxy / api/social/? Pisz akcje Zamknięty na MANAGE_SOCIAL_MEDIA; oparte na funkcjach opartych na funkcjach przez cały czas.
· MediaService
Ujednolicony zaplecza osi czasu (przetrwanie karmienia, adaptery, przekaźnik na żywo)
SocialFeedService utrzymuje posty/komrycenie w schemacie MediaSession/MediaObj (przestrzeganie modelu czatu); SocialFeedMapper buduje DTO drutowe; SocialTimelineController obsługuje połączone zasilanie + możliwości i komponowanie multi-providerowe fan-out, odpowiedź, Usuń. Wydarzenia paszowe publikują social.feed.orgId -> /topic/social/feed/orgId? (przekaźnik + Strażnik SUBSCRIBE). Fani SocialInboundConsumer, którzy chcą nakarmić przedmioty; zamiatanie sondażowe Zalewy. Wszystkie 5 adapterów dostawców - Zaimplementuj SocialFeedAdapter do maksimum każdego API, giętkowany.
· kamo-shared-library
Ujednolicona linia czasowa SPI + podmioty na schemacie medialnym
Ponowne wykorzystanie MediaSession/MediaObj w celu posiadania postów społecznościowych i odpowiedzi (Po-MediaObj, comment-child MediaObj via MediaObjMsg.parent, linkage dla dostawców MediaObjSocialRef). Dodaje podinterfejs SocialFeedAdapter (feed operacje trzymane z wymieraniem Ścieżka DM SocialProviderAdapter), MediaSessionSocialFeed (na połączenie Separowanie sesji), MediaObj SocialPRef kolumny feed, SocialObjKind i The Rozszerzona macierz ProviderCapabilities, która napędza funkcję UI dla dostawców.

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