Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· SecurityService
Kreditnehmer Rate-Lock Status Endpoint (LOCKED/FLOATING)
GET / Hypotheken-apps/{uid'/rate-lock (party-gated) - die SAFE-Lock-Haltung des Darlehens: LOCKED (Rate + Ablauf), wenn ein aktives, nicht ausgelaufenes Engagement besteht, sonst FLOATING. Fail-offen für FLOATING - nie behaupten, eine Sperre kann es nicht bestätigen. Backs doc 05 5.
· kamo-shared-library
Lock-Lookup durch Leihdatei (durch Szenario mitziehen)
************ - Schlösser Schlüssel auf Szenario, so lösen Sie eine Darlehenssperren über MlosLoanScenario.loanFileUid. Rücken des Kreditnehmers/Verteidiger 'ist dieses Darlehenszins-gesperrt?' lesen.
· SecurityService
Steward Rate-Lock-Proxy - Lock-Entscheidung + begehen ein zuschussfähiges Ergebnis
MlosCapitalMarketsController gewinnt POST /lock-Entscheidung (Vorschau) und POST /locks (Commit) via MlosCapitalMarketsClient; die Übergabe ist eine bewusste HUMAN Steward Sperre aufgenommen als ************ mit dem schauspielerischen Verwalter als verschlossenByMemberId Nie eine fertige KI-Autosperre. Der Motor der Kreditnehmer-ack / AUS Wände Relais als ehrlich 4xx.
· SecurityService
Leichenzeichner e-Snatur-Oberfläche - echte native Zeichen Links, kein Stub
GET ************ (parteilich) listet den Kredit auf KAMO_NATIVE Offenlegung/Schließen von Umschlägen + Empfängerstatus über ESigService; POST **************** Münzpräge eine frische Signierung deep-link (fail-closed: Umschlag muss zum Anruferdarlehen gehören). Backs the Rebuilt Schließende-Desk, der tief mit der nativen Signierung Erfahrung (doc 05 5) verbunden ist.
· ESigService
Interne Mint-Zeichen-Link primitiv für First-Party-Schilder-Oberflächen
POST ************ Remints Zugangscoke eines Empfängers und RETURNS die Signing Deep-Link (keine Einladung-EMail Hin- und Rückfahrt), so dass das MLOS-Kreditgeber-Portal einem authentifizierten Unterzeichner ein Live-Bediengerät geben kann Link. Refaktoren resend() um den Mint-Pfad zu teilen; completed/decoderd Empfänger 409.
· SecurityService
WS3 vendor-order Proxy - Steward Plätze/Lesen von Bestellungen von Drittanbietern
MlosVendorClient (X-Internal-Auth - MLOSVendorService /api/vendor) + mlos.vendor.url hinzufügen config, und app-scoped endpoints: GET /{uid'/vendor-order-orders (Operator-Ansicht) und POST /{uid'/Vendor-Orders (Personal - Besteller/Titel/HOI/VOE, optional erhältlich an eine THIRD_PARTY-Anforderung gebunden, so dass ihr Rückruf sie erfüllt). orgId + loanFileUid aufgelöste Server-Seite; der ehrliche Status der Anbieterschiene wird weitergeleitet, nie fabriziert.
· SecurityService
Borrower-safe my-conditions Projektion für die Portalbedingungen Ansicht
GET /{uid>/my-conditions (partei- oder Operator-gated) gibt eine schmale BorrowerConditionView ************ internen Schauspieler/bemerkt Felder, die der Steward LoanConditionDTO aussetzt. Das Portal verbindet diese mit den Dokumentenanforderungen, die es bereits holt (durch DarlehenConditionId) die Checkliste durch Underwriting Zustand zu gruppieren.
· SecurityService
Per-Riehen-Sektion GET Endpunkte, um die Capture-UIs zu hydratisieren
ListePerBorrower hinzufügen (requireView, party-gated) + GET list Endpoints für **************** Rückkehr {Züge:[...]. Diese zurück die neuen URLA-Kreditnehmer erfassen Abschnitte in KamoMLOS.
· kamo-shared-library
Kreditnehmer-Sektion lesen Methoden für andere-Einkommen/Aufwendungen/REO/Geschenk-Erfassung
Die pro-Kreditnehmer wiederholen Abschnitte waren nur Schreib-nur; Leseprojektionen hinzufügen **************** so der Kreditnehmer UIs können bestehende Zeilen über GET-Endpunkte hydratisieren.
· SecurityService
Volle Credit-Vendor Abstraktion + echte Wiederverkäufer-Adapter
Produktion tri-merge Kredit Schiene. Die Abstraktion passiert nun die FULL 9-stellige SSN (entschlüsselt zur Bestellung von der verschlüsselten Aufzeichnung des Kreditnehmers) + Co-Kreditnehmer für a JOINT pull - bisher wurde nur sssnLast4 bestanden, was kein Büro akzeptiert. Neuer MISMO-2.4 Protokollkern (mismo/): CreditVendorProfile + CreditAuthScheme **************** MismoCreditRequestBuilder (individuell + Joint, voll SSN, MeridianLink Inline-Login-Block), CreditResponseParser (tolerant Partiturprüfung über Attribut-Bestellungen + Büronormalisierung + Vendor-Fehler Erkennung). AbstractMismoCreditAdapter hält den gemeinsamen Auftragsfluss (valididate build - auth - POST mit begrenzten Timeouts - parse), config-driven mit Pro-Tenant überschreibt ************ von configJson). Benannte Adapter für die häufigsten Hypotheken-Händler, jeder Codierung seiner Öffentlichkeit Protokoll (auth Schema) mit Account-Credos als Konfiguration: MeridianLink (Inline-Login), Xactus (Bären), Factual Data / CBCInnovis / Credit Plus (Basis) + das Generikum MISMO catch-all. CreditOrderService entschlüsselt den vollständigen SSN über SecretCipher, löst den Co-Kreditgeber und bestellt gemeinsam, wenn vorhanden. Nur ehrliche Misserfolge, nie eine erfundene Partitur. 12 Tests grün.
· SecurityService
Leihener klar-zu-close Proxy
GET ************ - Party-gated; löst liehenFileUid aus der App und übermittelt die Clear-to-close-Bereitschaft von MLOSDocService.
· EmailService
X-***-Token für mobile Clients in OTKPreAuthFilter
pro-tab Session-ID als X-***-Token (passen **************** Wenn vorhanden (und kein X-OTK), lösen Sie die Sitzung nicht aufwendig und setzen Sie die gleiche Anfrage Attribute; ein ungültiger Token setzt nichts, so Controller noch mit 401 ablehnen. Session-Datenschutz unverändert.
· APIService
Route /api/Email + /api/Unterstützung durch den api host
(EmailService) und Support (MediaService, gleiche vorgelagerte wie /api/media) waren unrouted - 404. Fügen Sie beide Vorwärts und fixe email.service.url von einem lokalen Gastgeber Standardmäßig an den Cluster-Dienst. forward() gibt nur die Sitzung des Anrufers ab Header (X-***-Token) - keine X-Internal-Auth injiziert - so interne Endpunkte bleiben geschützt und nur Session-gated Funktionalität wird ausgesetzt.
· SecurityService
Steward-triggered Agentur-AUS laufen Proxy
Fügt POST ************ - der Steward "Run AUS" auslösen, dass die schreibgeschützte Underwriting-Konsole fehlte. Gated on operator (GD); organisatorische und amtierende Mitglieder sind SERVER-STAMPED aus der Sitzung (nie zuvor Vertrauen des Kunden), und MLOSUnderwritingService bestätigt das Darlehen Dazu gehört org (fail-closed cross-org). Fakten werden nach unten abgeleitet (DTI via LoanQualifyingRatioService, strukturell über ScenarioFactDeriver); Anrufer kann immer noch eine fico/fresh-credit-Bescheinigung passieren. Nichts löste ein Leben aus AUS laufen davor - die Run-Endpunkte hatten null Anrufer.
· KlusterServices
Selbstgehostete expo-updates Header für Mobile Copilot OTA
expo-protocol-version:1 + expo-sfv-version:0 response headers, dass die expo-updates Client erfordert und statisches MinIO kann nicht emittieren. Längerer Weg Präfix gewinnt über die allgemeine /öffentliche/ Themenroute.
· kamo-shared-library
VendorOrder + VendorOrderEvent Einheiten für WS3 Vendor-Order Spine
Die Greenfield 3rd-Party Order-of-record **************** SCRA). VendorOrder = partielle-WORM async Reihenfolge (ClosingArtifact idiom: opaque vendorKey/externalRef, eingefrorene Identität, nur Status/Ergebnisvorschuss; eine Neubestellung ist eine NEUE Zeile). VendorOrderEvent = full-WORM Append-only Ledger (AusRun idiom: eine unveränderbare Reihe pro Übergang/Anruf, externEventId dedup, Nutzlast für Replay). VendorKategorie += **************** ConnectionVendor Peer - Provenienz lebt hier, nie auf gesperrte Verbindung). Soft-FK-by-id, denormalisiert org/loanFileUid. KI @EntityScan(com.kamo) erstellt die Tische; Dienstleistungen bleiben ddl-auto:none.
· SecurityService
Stempeldokument Eigendatum bis Frische Uhr (WS1 Aktivierung)
Nach der Visionsextraktion, Propagieren Sie das eigene wirksame Datum des Dokuments (asset.statementPeriodEnd für Bank/Broker/Ruhestand, employment.payPeriodEnd für paystubs) an MemberDocument.freshnessAsOf. Das macht den MLOS Anforderung-zufriederes Alter ab dem tatsächlichen Kontoauszug/Zahltag statt der Upload-Zeit, so dass die Periode-Deckung-Engine endlich echte Periode Identität bekommt. Best-Anfecht, idempotent, bricht nie Extraktion; keine Schemaänderung (die freshness_as_of Spalte existiert bereits).
· kamo-shared-library
Hypothekenbeschärwarrung - monatliche P&I ab Darlehenskonkurz (WS6 Unterstützung)
Die eine PITI-Komponente, die nicht auf dem Darlehen gespeichert ist. Standard-vollamortisieren Formel P·r·(1+r)?n/((1+r)-n-n-1); Null-Rate kürzer auf gerade Linie; non-positives Prinzip/Term ausfallsicher bis zu 0,00 (niemals wirft/dividiert durch Null). Füttert PitiDtiCalculator P&I Input von ************
· kamo-shared-library
ClosingReadinessEvaluator - Leih-Level clear-to-close-Gate
Rollen Sie die Verpflichtungen eines Darlehens bis zur Finanzierung Frage der Ende-zu-Ende-Lücke Analyse angehoben ("Service das Darlehen bis zur Finanzierung"): Clear-to-close iff zero advancement-blocking (vor-close/fund) Bedingungen offen; Offene nicht-blockierende (vor-zu-doc/post-close) Bedingungen halten keine Finanzierung bereit. Erhält die entduped BlockingCategories "was übrig ist, bevor Sie schließen können"-Liste. Rein/staatenlos über Caller-mapped ConditionState Projektionen, Spiegelung ConditionClearabilityResolver - liefert die Regel, nicht die Meilensteinverkabelung.
· kamo-shared-library
QualifyingRatioEngineatioEngine - der verorduzierbare dti-Schlüsselanhänger (WS6)
Komponiert die vier Kerne (Einkommen, Verbindlichkeiten, PITI/DTI, Reserven) in ONE QualifyingSnapshot: Qualifizierendes Einkommen, versöhnte monatliche Schulden, montiert PITIA, Front/Back DTI, förderfähige Reserven, Reservemonate. Das ist die Single deterministische Ableitung, die zum alleinigen Produzenten der AUS 'dti' Tatsache werden muss Heute kommt diese Tatsache Kreditnehmer-typisiert oder leer und niemand leitet es. Rein/staatenlos, kein I/O, kein Schema; noch durch nichts genannt (sicher zu verdrahten in ScenarioFactDeriver weiter). Dieselben Beweise reproduzieren immer den gleichen Schnappschuss.
· kamo-shared-library
Reserverechner - förderfähiges Vermögens-Haarschnitte - PITIA Monate (WS6)
Abgeleitet Reserve Monate von tatsächlichen Vermögenswerten mit Standard-Agentur-Haarschnitte liquide Einlagen 100%, Makler 70%, vested Ruhestand 60%, Geschenk / geliehen ausgeschlossen - geteilt durch monatliche PITIA. Erfüllt die reine Qualifikationssuite (Einkommen + Verbindlichkeiten + PITI/DTI + Reserven) ein Overlay Minimum kann Gate on eine reale Zahl anstelle einer vom Kreditnehmern geschriebenen. Zero PITIA - undefiniert. Nein Schema, keine Verkabelung.
· kamo-shared-library
PitiDtiCalculator - PITI Montage + Front/Rücken DTI (WS6)
Reiner Verhältniskern Komplettierung des DTI-Trios mit Haftungsübersmittler + Einkommenskern: PITIA = P&I + Steuern + HOI + HOA + MI + Flut; Front = PITIA / Einkommen; zurück = (PITIA + Schulden) / Einkommen, als Prozentsatz. Nulleinnahmen undefiniert (nicht nach Null teilen). Das ist die deterministische Ableitung, die muss der einzige Produzent der AUS 'dti' Tatsache werden. Kein Schema, keine Verkabelung.
· kamo-shared-library
QualifyingIncomeCalculator - Basis + variabler Kern (WS5)
Reiner/deterministischer Einkommenskern: Grundangestellt = konservativ niedrigster verfügbarer Nachweis (Paystub / W-2 / VOE); variabel = 2-Jahres-Durchschnitt mit einem rückläufige Einkommensschütze (benutzen Sie die niedrigere aktuelle Run-Rate, wenn sie nach unten tendiert); Vermietung bei 75% des Brutto. Jede Zeile zitiert ihre Regel; gleiche Eingaben - gleiche Summe (Wiederholung). Der auditierbare Input zu einem echten DTI, der Entdupe-by-Arbeitgeber ersetzt. Bedient auf caller-mapped Projektionen - kein Schema, keine Verkabelung, kein Verhalten Veränderung. SE Cashflow / Brutto-up landen oben.
· kamo-shared-library
Haftungsausser - Regeln für die Zahlungsausschöpfung der Agenturen (WS6-Core)
Reiner/staatenloser Computer verwandelt jede Haftung in die monatliche Zahlung das zählt gegen DTI, mit einer zitierten Begründung: weggelassen/bezahlt ausgeschlossen, Mietverträge immer im Preis inbegriffen, Raten 10 Monate aus, revolving- without- Zahlung mit 5% des Guthabens, anders angegeben. Die vertretbare Grundlage eines Back-End DTI (ergliedert eine injizierte 'dti'). Operates auf einem Anrufer-mapped Projektion der gesperrten Haftung - kein Schema, keine Verkabelung, kein Verhalten Veränderung. Aufgeschobene Schüler-Darlehen / Kontingent-Behandlungen landen mit der additive Haftungsflaggen.
· kamo-shared-library
Explizit-Periode-Menge-Spezifikation für Delta-Nachfolger
RequirementQuantity erhält eine explizite Periodenliste (+ deltaJson Builder); wenn es vorhanden ist die erforderliche Satz, so dass ein Nachfolger kann ausgekundschaftet werden "Einfach August senden". PeriodCoverageEvaluator ehrt es und entlarvt requiredKeys(). Rein/zusätzliche.
· kamo-shared-library
**************** als einzige Periodenschlüsselquelle
Fügt periodKeyFor(Datum) so den Schreibpfad (zufriedenstellende Stempel) und die Abdeckung Gutachter Schlüsselperioden identisch; Gutachter delegiert jetzt daran. Rein/additive, keine Verhaltensänderung.
· kamo-shared-library
Period-coverage Primitive für period-aware Dokumentensammlung
Die reine, additive Grundlage der period-aware Kollektion (doc 06 .4) erster Teil der Bank-Aussage "sammeln Sie nur die Monate, die ich noch nicht habe" fix. Null Verhaltensänderung, kein Verbraucher verdrahtet. - Anforderungsquote: unveränderliche Ausstattung {Zählung, PeriodeMontel, Tritt, perAccount, perParty-geparsed von quantit_json; scheitert offen für SINGLE so ein Nicht näher spezifizierte Anforderung hält das heutige Verhalten der Gesamtdokumente aufrecht. - PeriodCoverageEvaluator: pure @Component (Spiegel ConditionClearabilityResolver) Rechenaufwand/gedeckte/unbedeckte Perioden + abgeleiteter Status aus einer Spez, die akzeptierten Satisfiers und ein Ankerdatum - die "1 von 2, fehlt 2026-06" Logik, mit einem abgestandenen Out-of-Window Monat ignoriert (vorwärts getragen, nicht neu gefragt). - AnforderungSatisfier: vier additive NULLABLE Spalten (period_end, effective_date, period_key, account_key) + Index; WORM @PreUpdate erhalten. - PARTIAL_RECEIVED (bereits im Enum, isOpen()=true) wird einfach erreichbar. Spalten gelten additiv über KamoInitializer (mit dem M1 Write-Pfad gekloffelt laufen); Dienste bleiben ddl-auto:none; keine Shared-lib-Version Bump.
· kamo-marketing
Ersetzen gestromten Chat mit gehosteten <kamo-chat" einbetten; Legacy Proxy Widget löschen
Tautet den gespalteten AI/live-Support React Chat (PublicChatWidget + AiChatPanel + LiveSupportPanel + die /api/chat/** Server-Proxy-Routen) für die gehosteten, selbst-theming <kamo-chat' Custom-Element von **************** Die Marketing-Org's WebChatIntegration Website-Taste ist serverseitig im Locale-Layout gelesen **************** Kraft-dynamische Route, so dass es bei Zeit anfordern, nicht in einen statischen Build gebacken) und an die neue weitergegeben KamoChatEmbed Client-Komponente, die das Widget-Skript einspritzt und einhängt <kamo-chat site-key="..."". Drops @stomp/stompjs und sockjs-client, die wurden nur von dem gelöschten LiveSupportPanel verwendet.
· kamo-internal
Installieren Sie install-QR (selbstgehostetes APK) zum Register "Mobile App"-Setup hinzufügen
Install/Sign-in toggle: "Install" zeigt einen QR zum signierten APK auf der Neues Telefon kann es herunterladen+sideload; "Sign in" hält den passwortbegated OTK-Flow.
· kamo-internal
Web Chat Integration design Customizer + Live-Vorschau
Fügt einen Anpassen Dialog zum Web Chat Integration Tab hinzu: ein Editor-Formular (Farben, Kopieren, Layout, Verhalten, KI-Anforderung) auf der linken Seite und ein sofortige, nicht-interaktive Verspottung des Widgets auf der rechten Seite, beide angetrieben aus der gleichen In-Gedition-Konfiguration, so dass jede Bearbeitung sofort reflektiert. - **************** TS Spiegel des kanonischen Widgets DEFAULT_DESIGN_JSON (kamo-shared-Bibliothek WebChatDefaultConfig.java) + deep-merge/parse Helfer so ein gespeichertes designConfig (null/partial/ malgeformt) löst sich immer zu einer vollständig bevölkerten, editierbaren Konfiguration auf. - **************** enthaltene gestylte Mock (Launcher + Open Panel), kein Remote-Widget Bündel beteiligt. - ************ EinstellungenTextFeld gewinnt optionale Multiline/Zeier-Requisiten (additive, abwärtskompatibel) für die Welcome-Message/System-prompt-Felder. Speichern Sie PUTs der Integration DesignConfig + aiEnabled/humanEnabled/ aiSystemPrompt via webChatIntegrationsApi.update, mit Hex-Farbe und Positiv-integer-Validierung vor der Anfrage.

Euer Universum wartet.
Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.
Für immer kostenlos – keine Kreditkarte erforderlich