Salta al contenuto
KAMOUniverse

Changelog

Cosa c'è di nuovo.

Ogni miglioramento alla piattaforma, come si spedisce.

  1. · kamo-internal

    Scheda delle politiche — pricing/capital/servicing config

    Nuovo MortgagePoliciesTab: versione attiva corrente + modulo di nuova versione + versione storia per ciascuna delle tre politiche efficaci; configTypes/configApi + scheda registrazione.

  2. · SecurityService

    Politiche di profilo modificate in modo efficace — Pubblicazione dei prezzi/capitali/servi

    Nuovo MlosPolicyWriteService (isolato; il suo repos in modo che il config-collection write- servizio è intatto): versione demote-then-insert monoattivo sullo stesso audit spina dorsale. Regolatore /politica-pricing, /capital-policy, /servicing-policy GET (current+ storia) / PUT (pubblica nuova versione). ServicingPolicy SCRA/FDCPA invarianti rimangono veri.

  3. · kamo-shared-library

    Interfaccia VersioneProfilePolicy per politiche efficaci

    Pricing/Capital/ServicingPolicy lo implementano in modo da pubblicare routine guida versione demote-then-insert.

  4. · kamo-internal

    Consegna degli investitori + regole di impegno

    La riga di investitore espanso guadagna Consegna (comportamento di finanziamento / percorso di esecuzione / remittance) e Commitment (type / min pull-through % / pair-off) editor insieme delegazione + overlays; configTypes/configApi type + chiamate.

  5. · SecurityService

    InvestorConfig consegna + sub-collezioni regola impegno CRUD

    Non e' vero. (+update/delete) sulla spina dorsale di configurazione D31 (org fail-closed tramite l'investitore genitore, WORM change-log per riga); controller /investitori/{id}/rules di consegna + /commitment-rules GET/POST/PUT. Completa l'ultimo Le sottocollezioni di InvestorConfig differivano da [04].

  6. · kamo-internal

    Investor credit-box overlay subeditor

    MortgageInvestorsIl file di investitori ampliato di Tab acquisisce un OverlayEditor (FICO/LTV/DTI/ riserve/doc/geo serraggio + comparatore + programma opzionale + finestra efficace) accanto all'editor della delegazione; configTypes/configApi overlay type + call.

  7. · SecurityService

    InvestorConfig credit-box overlay subcollection CRUD

    ♪ **************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** investitore genitore, WORM change-log per riga, configVersion defaults 1); controller /investitori/{id}/overlays GET/POST/PUT (determinare tramite:false attivo). Completa il IndagineOverlay fetta differita da [04].

  8. · kamo-internal

    Sotto-nav a altezza retta + testo a contrasto superiore

    - Spostare la sezione sub-nav da sinistra a un pannello destro a tutta altezza che scorre indipendentemente; l'intestazione + il contenuto del modulo prendono la larghezza rimanente a sinistra e scorrere da soli (due regioni di scorrimento indipendenti su md+; pile con nav in alto per schermi stretti). - Accessibilità: oscurare tutto il testo secondario/label (gray-400 -> grigio-600, grigio-500 -> grigio-700) attraverso la pagina dei dettagli + Campo condiviso/SezioneCard/ Primitivi EmptyState in modo che le etichette incontrino il contrasto WCAG AA per gli utenti a bassa visione.

  9. · kamo-internal

    Loan pipeline come Mortgage sub-tab + tema leggero

    - Aggiungere applicazioniPipelineConsole: una /leads-style avanzato AG-Grid datagrid di applicazioni ipotecarie a livello di prestito (tavole filtranti, fila di filtro, ricerca rapida, esportazione CSV, impaginazione, riga -> dettaglio). Filato come l'ultimo sub-tab della console Mortgage steward (?sub=pipeline). - Re-tema/applicazioni/[uid] dettaglio + condiviso Field/SectionCard/Modal/ Primitivi EmptyState + tutte le 14 sezioni dal tema della marina scura al luce kamo-internal idioma; sostituire l'eroe pieno sanguinante con un flusso barra di intestazione (fissi intestazione / sovrapposizione di contenuti). - Re-tema / applicazioni/pipeline (kanban) e /applicazioni/hmda-lar alla luce. - Rimuovere il deprecato standalone /applicazioni elenco scuro; ripunto QuickActionsBar 'Nuova Applicazione' al sub-tab della pipeline di mercato Mortgage.

  10. · kamo-internal

    Pannello di configurazione di calibrazione AI-Governor (D4 §5.C)

    Non e' vero. La scheda avanzata guadagna un pannello del governatore: modificare la piattaforma- la postura di calibrazione predefinita (cancello governativo / campioni di forza-steward-until-calibrati / min, ogni Inherit|Enabled|Disabled) tramite la nuova API di governatore-config. Per-org sovrascrive strato in cima.

  11. · SecurityService

    ScenarioDiscoveryService — genesi del profilo canonico a creazione/aggiornamento del prestito-app (D1)

    MortgageAppController (re)produce il BorrowerScenarioProfile canonico tramite il nuovo ScenarioDiscoveryService dopo l'entrata in servizio. (migliore sforzo, il proprio tx). Aggiunge mlos.intake a @EnableJpaRepositories.

  12. · kamo-shared-library

    LOAN doc-type guard (D2), sign-convention adapter (D3), per-org governatore config (D4)

    - ImageService: richiedere un docType per ImageAssocType.LOAN uploads (LOAN-scoped; ACCOUNT/SERVICE * invariato). - Adattamento firmatoAdattamentoAdattatore: la regola-7 adattatore/rilegamento completo (Regolazione canonica ↔ valore firmato) per la migrazione incrementale sign-convention. - AutonomyGovernorConfig + repo + GovernatoreConfigResolver (org → piattaforma-default → Configurazione ConfigMap); DbAutonomyGovernor risolve ora la calibrazione/abilitazione per-org.

  13. · kamo-internal

    AUS scheda connessioni (D37) + blocco 2 ° mercato ipotecario (D38)

    - MortgageAusConnectionsTab: org-scoped DU/LP/GUS credenzialial config (uno per genere); segreto è un campo di password di sola scrittura, la riga mostra solo se una credenziali è impostata. - Nuova pagina di mercato: disabilitare l'opzione MORTGAGE + convalidare una volta che l'org ha uno.

  14. · SecurityService

    AUS-connession config superficie di scrittura (D37) + singolo mercato ipotecario per org (D38)

    - MlosConfigWriteService ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** unicità one-per-AusKind, segreto conservato su modifiche segrete, colonna vertebrale di audit WORM. - MlosConfigController /aus-connections GET/POST/PUT — il segreto è solo di scrittura (crittografato tramite PlatformSecretCipher all'interno della mutazione); la vista espone haCredential, mai il testo cifrario. - No, no. respingere un secondo mercato MORTGAGE per org (409).

  15. · kamo-internal

    Sottoeditore della delegazione dell'investitore — autorità per programma (D39)

    Getta l'interruttore/colonna delegati; ogni riga di investitore si espande a un per-programma editor di delegazione (programma UUID, vuoto = default a livello di investitore; DELEGATO/ NON DELEGATED) sostenuto dalla nuova /investors/{id}/delegations API.

  16. · SecurityService

    Delegazione degli investitori superficie di scrittura — per-programma CRUD (D39)

    Goccia delegatoAuthority da InvestorConfig scrivere / visualizzare; aggiungere il InvestorDelegazione sotto /investors/{id}/delegation (GET/POST/ PUT, eliminare tramite active:false) sulla spina dorsale di configurazione D31 — org non chiuso tramite l'investitore genitore, WORM change-log + profileVersion bump per riga.

  17. · kamo-shared-library

    Delegazione degli investitori per programma (D39) — nuovo bambino di InvestorDelegation

    La delegazione è granulare per (investitore, programma), non un grosso InvestorConfig Boolean. Aggiunge DelegazioneAuthority {DELEGATED, NON DELEGATED}, il InvestorDelegation entità (mlos investor delegation, optional programId; null = Inadempienza a livello di investitore) + ripetizione e gocce

  18. · kamo-shared-library

    [AUS] entità AusConnectionConfig — per-org per-market connessioni DU/LP/GUS

    Proprietario #6: ogni org configura le proprie AUS vendor API (Fannie DU / Freddie LP / USDA GUS) per mercato ipotecario, in impostazioni→commerce. Modello di dati Fondazione: AusConnectionConfig (mlos.config, nuova tabella mlos aus connection config) — una riga per (profilo del mittente, AusKind); dal momento che un LenderProfile è un-per-mercato, keying by lenderProfileId fa questi per-mercato. Riutilizza l'enum AusKind esistente (DU/LP/GUS) e il vocabolario VendorCategory.AUS piuttosto che inventarne di nuovi. Segreto a riposo: il segreto API viene memorizzato SOLO come un AES-256-GCM segretoCiphertext (crittografato da PlatformSecretCipher su scrittura, specchio SocialConnection/ PlatformOAuthClient) e non è mai in un DTO — legge esporre haCredential invece. clientId/endpointUrl/configJson non è sicuro. Unico (profilo, aus kind). Backend scrittura/controller ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** AUS-connessioni scheda + i18n + KI (nuova tabella) costruire su questo successivo; il per-market vs la risoluzione org-scoped è una decisione config-spina che esce dal proprietario.

  19. · kamo-shared-library

    [ImageAssocType] append LOAN — immagini attaccano ad un prestito, tipo doc richiesto

    Direttiva del proprietario: le immagini possono essere attaccate direttamente a un prestito ipotecario, sempre con un tipo di documento rilevante. Appendice LOAN a ImageAssocType (id 11, benna imaging-loans), specchiando le bandiere di raccolta documenti ACCOUNT: isAllowDocType=true + èAllowDocTypeOpt=false, quindi il tipo di documento di prestito è richiesto e NON org- opzionale. Aggiungere richiedeDocType() (isAllowDocType && !isAllowDocTypeOpt) quindi caricare i percorsi fanno rispettare 'sempre un tipo doc'. Persistenza-sicuro con NO KI/schema cambio: Img.assocId non ha @Enumerated (defaults a ORDINAL) e non vi è alcun vincolo CHECK, quindi l'appending al END conserva ogni ordinale della riga esistente (una guardia di prova LOAN-is-last). 3 test verdi. follow-up coordinato (flagged): (1) fornire l'imaging-loans MinIO secchio via KlusterServices prima del primo caricamento del prestito-doc; (2) ricostruire la ImageAssocType i consumatori (DocsService fa i valori()[id] — devono conoscere LOAN prima che arrivi un LOAN id: E' il momento giusto. Prendilo. la loro prossima costruzione CI); (3) l'applicazione richiede DocType() al percorso di salvataggio di upload di prestito-doc.

  20. · kamo-shared-library

    [sign-convention] money sign-convention validators + modello di regolazione

    Per le regole canoniche del proprietario. Il core domain money non codifica mai significato in un segno: - No, no. / richiestoPositivo — attività, crediti, passività, debiti, commissioni, costi, crediti sono di magnitudine POSITIVE nel proprio campi (regole 1-3); un valore negativo non riesce veloce. - Direttiva di regolazione {INCREASE, DECREASE, CREDIT, DEBIT, PREMIUM, DISCOUNT} — tasso/ regolazioni dei prezzi (LLPA, SRP, regolazioni dei prezzi, concessioni, sconti) espongono un direzione esplicita, mai numero firmato (rule 5). - No, no. + il record di regolazione autovalidante — respingere una magnitudo il cui segno contrasta con la direzione dichiarata (rule 6); a l'adeguamento firmato non può essere costruito. Regole 4 (accounting +/- vive solo nello strato GL) e 7 (segnando solo nell'adattatore strato) sono confini architettonici che la guardia impone vivendo nel CORE e respingere la codifica firmata — la conversione che porta il segno per investitore/warehouse/ contabilità/MISMO feed rimane fuori dal dominio per costruzione. 4 test verdi.

  21. · kamo-shared-library

    [§5.A] BorrowerScenarioProfilo + ProductDiscoveryGate

    Per il §5 del proprietario. Una direttiva: ScenarioSupportPolicy deve consumare una canonica Profilo Scenario Borrower generato da dati URLA normalizzati, forme mai crude / UI, e future fonti (AUS/OCR/AI/manual) UPDATE quel record canonico piuttosto che bypassarlo. - BorrowerScenarioProfile (mlos.intake, new table) l'unica fonte per-loan di verità — il 5 digitato URLA prodotto dims + un estensibile JSONB + ultimaFonte + versione. Mutable (accretes verità), verificato da sorgente+versione. - BorrowerScenarioProfileService: ProduceFromUrla (loanFile, orgId) è la genesi (leggi normalized Loan/Property immediatamente dopo la normalizzazione URLA); applicareaggiornamento è la cucitura ONLY più tardi fonti uso (fallisce forte se non esiste un profilo — la genesi è URLA è solo, rafforzando l'aggiornamento-non-bypass); aSupportProfile progetti i 5 dims. - ProductDiscoveryGate: il §5.Una parete legale consultata PRIMA eleggibilità/precing — risolve ScenarioSupportPolicy (tenant overrides + codice predefinito) sul canonico profilo e, su un rifiuto, registra una WORM AiDecision indirizzata a uno steward (NO ELIGIBLE PRODUCT, legalmenteRequiresHuman; DEFERRED HARD STOP=HIGH, STEWARD ONLY= MEDIUM) tramite una DecisionSpine opzionale. SUPPORTATO non scrive nulla. 10 test verdi. Build-and-flag: ha bisogno di una corsa KI (nuovo tavolo) + il cablaggio del flusso di servizio (call productsFromUrla at the URLA-normalization hook + gate.evaluate al prodotto- ingresso scoperta) nel servizio di gestione.

  22. · kamo-shared-library

    [12] §5.A ScenarioSupportPolicy deferral-interlock risolutore (D36)

    doc 12 linea 235 P0 — «l'aggiunta più economica del ciclo di vita più levante». Un muro legale alla scoperta del prodotto che mantiene E' il momento giusto. silenziosamente in esecuzione come primo-liens in avanti (divulsioni sbagliate). ScenarioSupportResolver (pure @Component) mappa un profilo ScenarioSupport (LoanType x Final x Lien x Amortization x Costruzione, il donotmodify URLA enums esistente) a Traduzione: Matrix di default (D36): SUPPORTATO = agenzia in avanti/non QM FIRST-lien acquisto/refi con un'ammortizzazione standard (che copre i motori deterministici); STEWARD ONLY = riconosciuto-ma-outside-v1 un umano può avere origine (subordinate/HELOC, costruzione/casa- miglioramento, GPM, o qualsiasi altro dim — la cattura inversa/commerciale, dal momento che il residenziale URLA enums non hanno valore per loro); DEFERRED HARD STOP = non chiuso quando un critico dim è nullo. L'AI quindi non autoprogressie mai un prodotto non-v1. Per-tenant ScenarioSupportPolicy sovrascrive lo strato delle righe sulla parte superiore (la partita più specifica vince, più recente la versione rompe i legami; null dim = jolly) per aprire un prodotto a SUPPORTED o indurirlo a DEFERRED HARD STOP. 13 test verdi. Build-and-flag: il risolutore + l'ente nave ora; il prodotto-scoperta WIRING (consulto prima dell'ammissibilità + emettere un AiDecisione sul rifiuto) e KI per mlos scenario support policy sono il follow-up (bisogno di una corsa KI — proprietario-gated).

  23. · SecurityService

    [08] ReconciledFactPublisher — los.pipeline.fact pubblicare cucitura (D34)

    doc 08 §3.3: il blocco************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** editore (che modifica donotmodify). Aggiungi un involucro di editore non sbloccato che si riconcilia, poi su un non-zero conteggio emette los.pipeline.fact. <orgId> su il flusso LOS PIPELINE esistente (los.pipeline.> già lo lega — nessun nuovo flusso/ tavolo), così il ciclo di prontezza può sparare. Rinominare l'unico chiamante (MortgageConnectController's conciliare endpoint) al wrapper; il servizio bloccato è intatto. Posizionamento (D34): co-localizzato in SecurityService con il suo unico chiamante corrente, non in MLOSCapitalMarketsService come §3.3 provvisoriamente suggerito (che ha assunto un lato RCE chiamante che non esiste ancora). Il mandato invariante — mai pubblicato dall'interno il servizio bloccato — tiene in entrambi i casi. Miglior sforzo come LosPipelinePublisher: assente NATS o un fallimento pubblicato è registrato + ingoiato, il conteggio è ancora restituito. 4 prove verde.

  24. · kamo-shared-library

    [12] §5.C AutonomyGovernor — kill-switch + force-steward-until-calibrated (D32)

    La DecisionGate trasporta già una forza-sterzo statica GLOBAL @Value, ma §5.C ha bisogno di due cose che non può dare: un kill switch flippable SENZA redeploy (così DB-backed) a GLOBAL/TENANT/TASK TYPE granularity, e forza-sterzo-until-N campi di calibrazione per tipo di attività (il P0 economico il macchinario di calibrazione degenera al lancio — doc 12 Tema C / §6.1). AutonomyGovernor (governance pkg) è un Docstor OPTIONAL (ObjectProvider, ) consultata sincronamente dalla decisioneSpine.record() — la stessa forma di StewardAssigner. È ADD-ONLY, esattamente come il muro legale: può solo trasformare un AUTO EXECUTE sarebbe in ROUTE TO HUMAN, mai sollevare un routing, così il puro / senza stato DecisionGate è intatto. Due condizioni di forza: attivo AutonomyKillSwitch corrispondenza (orgId, aiFunction) — portata più ampia vince il ragione; un'entità mutabile/flippable, NON WORM, verificata tramite fidanzataBy/at; (b) boottrap di taratura — a livello di piattaforma non test conteggio StewardFeedback per aiFunction sotto i min-samples (default 50), contato da una nuova query di unione. Quando governatore è la causa del routing, la sua ragione è allegata alla WORM AiDecision così una decisione di alta fiducia che è andato a un umano non è mai inspiegabile. Nuova autonomia tabella kill switch (additivo DDL — KI run). 30 test verdi (7 governatore logica + 3 integrazione sommaria della colonna vertebrale + 6 colonna vertebrale + 14 cancello); tutti e quattro DecisionSpine ctors conservato (esistenti chiamanti invariati).

  25. · kamo-internal

    [04] scheda di sovrapposizione del rischio — strati di casella di credito/geo/esposizione (D31)

    Nuova scheda di configurazione del mercato MORTGAGE per overlay di rischio per-tenant: categoria (scatola di credito / geo concentrazione / tipo di proprietà / prestito importo / frode / limite di esposizione) + azione (deny / refer / counteroffer / flag) + opzionale portata variabile del prodotto + finestra efficace + un'espressione di regola opzionale JSON (validata per parseability lato client, che rispecchia il server 400). Aggiungere / rimuovere le righe; la rimozione è una cancellazione difficile. Renders dopo Investors, prima della scheda accordi sempre in corso. configTypes/configApi rispecchiare il modello di raccolta D31; i18n tramite il repo kamo-translation-dictionary.

  26. · SecurityService

    [04] fetta E2 RiskOverlay raccolta CRUD (D31)

    Sovrapposizioni di rischio (credit-box / geo-concentrazione / strati limite di esposizione su base credit box) come raccolta di configurazione sulla colonna vertebrale D31: creare default configVersion=1 + timbri identità profilo + profilo urtiVersione + validate-or- rollback + appends a WORM MlosConfigChangeLog; update/delete sono chiusi 404 sulla riga di un altro profilo; delete is a hard remove audited as {"deleted":true}. La regolaEspressione è una colonna JSONB — il controller lo valuta come JSON prima che la scrittura così cattivo input è un pulito 400, non un 500 mid-INSERT. Null/blank è permesso (il vocabolario di regola è uno strato differito, portato fuori banda per ora). 20 test di scrittura-spina verde (4 overlay + 4 investitore + 6 licenze + 6 stage-override).

  27. · kamo-internal

    Scheda investitori MORTGAGE (list/add/remove) — [04] fetta E2 (D31)

    La 7° scheda di configurazione MORTGAGE: per-investor ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************ righe di autorità con un chip di approvazione-status. Aggiungere tramite riga in linea (codice + stato + opzionale E' il momento giusto. rimuovere via cestino (difficile cancellare lato server). configTypes InvestorView/InvestorRequest + 3 array enum + etichetta helper; configApi **************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** scheda «investitori» dopo le licenze, prima degli accordi. Inglese tramite il repo traduttivo-dizionario. pulito.

  28. · kamo-internal

    UI della linea temporale sociale unificata a /marketing/social

    Live, animato cross-provider feed riutilizzando lo stile di feed clubhouse: virtualizzato timeline, chip di filtro del fornitore, SocialPostCard (risposte/react/delete), Multi-provider SocialComposer (per-provider capacità suggerimenti + chip risultato ventilatore-out), Facebook stile NewPostsPill (no autoscroll), utilizzareSocialFeedWebSocket live via /topic/social/feed/{orgId} e i percorsi /api/media/social/* proxy. Scrivere azioni gated su MANAGE SOCIAL MEDIA; funzionalità-driven lungo tutto.

  29. · MediaService

    Unificato backline timeline (persistenza, adattatori, relè live)

    SocialFeedService persegue i messaggi/commenti sullo schema MediaSession/MediaObj (riutilizzando il modello di chat); SocialFeedMapper costruisce il filo DTO; SocialTimelineController serve le capacità di alimentazione + e multiprovider comporre fan-out, rispondere, reagire, Cancella. Eventi di alimentazione pubblica social.feed.{orgId} -> /topic/social/feed/{orgId} (relay + cross-tenant SUBSCRIBE guardia). Ventilatori SocialInboundConsumer fuori per alimentare gli elementi; backfill. Tutti i 5 adattatori del fornitore L'attrezzatura e' pronta. SocialFeedAdapter al massimo di ogni API, capacità-gated.

  30. · kamo-shared-library

    Timeline unificata SPI + entità sullo schema dei media

    Riutilizzare MediaSession/MediaObj per tenere messaggi e risposte sociali (post=MediaObj, comment=child MediaObj via MediaObjMsg.parent, linkage del fornitore su MediaObjSocialRef). Aggiunge SocialFeedAdapter sub-interfaccia (feed ops mantenuto spento il percorso DM SocialProviderAdapter), MediaSessionSocialFeed (per-connessione sessione di alimentazione), MediaObjSocialRef colonne di alimentazione, SocialObjKind, e matrice di ProviderCapabilities ampliata che guida per-provider UI caratteristica-hiding.

Il tuo universo ti sta aspettando.

Aggiungi i prodotti quando sei pronto: nessuna migrazione, nessun nuovo login, nessuna richiesta di pagamento.

Gratis per sempre — nessuna carta di credito richiesta