Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· kamo-internal
Tab kebijakan - efektive- tanggal harga / modal / layanan config
MortgagePoliciesTab baru: versi aktif + publish- versi baru bentuk + versi sejarah untuk setiap tiga kebijakan tertanggal; konfigurasi Types / konfigurasi + tab Pendaftaran.
· SecurityService
Effective- tanggal profil kebijakan - harga / modal / melayani mempublikasikan
New MlosPolicyWriteService (terisolasi; repos sendiri sehingga konfigurasi-koleksi menulis- layanan tidak tersentuh): aplikasi tunggal-aktif -kemudian- masukan versi pada audit yang sama tulang belakang. Kontrol / kebijakan-mahal-kebijakan, / kapital- kebijakan, / layanan-kebijakan GET (saat ini + riwayat) / PUT (menerbitkan versi baru). Narapidana ServingPolicy SCRA / FDCPA tetap benar.
· kamo-shared-library
Antar muka Kebijakan ProfilePolicy versi untuk kebijakan yang tertanggal
Sebelumnya / Capital / ServingPolicy mengimplementasikannya sehingga satu menerbitkan drive rutin single-active demote- then-insert versioning.
· kamo-internal
Peraturan pengiriman investasi + komitmen sub- editor
The expanded investor row received Delivery (pendanaan perilaku / eksekusi path / remitansi) dan Komitmen (tipe / min pull-through% / pair-off) penyunting di samping delegasi + overlay; konfigurasi Types / konfigurasi tipe + panggilan.
· SecurityService
Pengantar saham Config + aturan komitmen sub- collection CRUD
* * * * * * * * * * * * * * * (+ update / delete) pada latar belakang konfigurasi D31 (org gagal-tertutup melalui induknya investor, wORM change- log per baris); pengontrol / investor / {id} / delivery -rules + / commitment -rules GET / POST / PUT. Selesai terakhir Investor Config sub- koleksi ditunda dari [04].
· kamo-internal
Penyunting kredit investasi - kotak overlay sub-
MortgageInvestor Tab diperluas baris investor memperoleh OverlayEditor (FICO / LTV / DTI / cadangan / doc / geo memperketat + perbandingan + aplikasi opsional + jendela efektif) bersama penyunting delegasi; konfigurasi Types / konfigurasi tipe + panggilan overfipapi.
· SecurityService
Kredit Investor Config - kotak overlay sub- koleksi CRUD
* * * * * * * * * * * * * pada D31 config spine (org fail-closed via the investor induk, change- log WORM per baris, konfigurasi default 1); pengontrol / investor / {id} / overlay GET / POST / PUT (hapus melalui aktif: salah). Selesai Investor Overlay slice ditangguhkan dari [04].
· kamo-internal
Kanan-terpasang full- tinggi sub- nav + tinggi-kontras teks
- Pindahkan bagian sub- nav dari kiri ke kanan terpasang, panel penuh-tinggi bahwa gulungan secara independen; isi bentuk header + mengambil lebar yang tersisa di sebelah kiri dan gulung sendiri (dua daerah gulungan independen pada md +; Tumpukan dengan nav di atas untuk layar sempit). - Aksesibilitas: darken semua teks sekunder / label (Gray-400 - > gray-600, gray-500 - > gray-700) di seluruh halaman detail + shared Field / SectionCard / Primitif EmptyState jadi label memenuhi kontras WCAG AA untuk pengguna pengelihatan rendah.
· kamo-internal
Pinjaman baris pipa sebagai Mortgage sub- tab + tema cahaya
- Tambah ApplicationsPipelineConsole: a / leads- style maju AGrid data rid aplikasi hipotek pada tingkat pinjaman (tab filter status, baris filter, pencarian cepat, ekspor CSV, pagination, baris - > detail). Dipakai sebagai yang terakhir sub- tab dari console Mortgage steward (? sub = pipeline). - Re-tema / aplikasi / [uid] detail + shared Field / SectionCard / Modal / Primitif EmptyState + semua 14 bagian dari tema angkatan laut gelap ke light kamo- internal idiom; mengganti full- bleed hero dengan in- flow batang header (perbaikan header / isi tumpang tindih). - Re-theme / applications / pipeline (kanban) dan / application / hmda-lar ke cahaya. - Hapus daftar gelap standalone / aplikasi yang sudah ditinggalkan; repoint QuickActionsBar 'New Application' ke bagian jalur pipa pasar hipotek.
· kamo-internal
Platform AI- Gubernur kalibrasi panel config (D4 = 5.C)
* * * * * * * * * * * * * * * Advanced tab memperoleh panel gubernur: edit platform- postur kalibrasi baku (Gubernur gerbang / paksa - pramugari - sampai - kalibrasi / min sampel, masing-masing Inherit 124; Dinyatakan Alasan124; Dinonaktifkan) melalui pemerintah baru-config API. Per-org overrides lapis di atas.
· SecurityService
ScenarioDiscopyService - profil kanonical genesis di loan- app buat / update (D1)
MortgageAppController (re) memproduksi Canonical BorrowerScenarioProfile melalui baru Skenario DiscopyService setelah * * * * * * * * * * * * * * * * * (Usaha terbaik, TX-nya sendiri. Tambahkan mlos.asupan ke @ EnableJpaRepositor.
· kamo-shared-library
LOAN doc-type guard (D2), sign-convention adaptor (D3), per-org governor config (D4)
- ImageService: memerlukan docType untuk ImageAs.Type.LOAN uploads (LOAN-scoped; ACCOUNT / SERVICE _ * tidak berubah). - SignedAdjustPent Adapter: batas adaptor -7 / clat (penyesuaian kanonikal Nilai yang ditandatangani) untuk migrasi incremental sign-convention. - AutonomyGovernnorConfig + repo + GovernorConfigresver (org Ipon-form- default Penyelundupan peta; DbAutonomyGubernur sekarang memecahkan kalibrasi / enablement per-org.
· kamo-internal
Tab koneksi AUS (D37) + blok 2 pasar hipotek (D38)
- MortgageAusConnectionTab: org- scoped DU / LP / GUS kredensial config (satu per jenis); rahasia adalah ruas sandi write- hanya, baris hanya menunjukkan apakah kredensial diatur. - Halaman pasar baru: nonaktifkan opsi MORTGAGE + validate setelah org memiliki satu.
· SecurityService
Konfig koneksi AS- tulis permukaan (D37) + pasar hipotek tunggal per org (D38)
- MlosConfigure WriteService * * * * * * * * * * * * * org- scoped (resolveProfile), satu keunikan yang luar biasa, rahasia yang diawetkan pada edisi rahasia, tulang belakang audit kerja. - MlosConfigController / aus- koneksi GET / POST / PUT - rahasia hanya tertulis - (dienkripsi melalui PlatformSecretCipher dalam mutasi); tampilan mengekspos haskredensial, tidak pernah ciphertext. - * * * * * * * * * * * * * * Menolak pasar kedua per org (409).
· kamo-internal
Delegasi investasi sub- editor - per- program otoritas (D39)
Jatuhkan Delegasikan Switch / kolom; setiap baris investor mengembang ke sebuah program per- penyunting delegasi (UUID program, kosong = reporor-lebar baku; DELEGATED / NON _ DELEGATED) didukung oleh investor / baru / {id} / delegasi API.
· SecurityService
Delegasi investasi menulis permukaan - per- program CRUD (D39)
Jatuhkan Otoritas DelegatedAuthorConfig dari write / view; tambahkan Komplotan penghapusan investasi dibawah / investor / {id} / delegation (GET / POST / PUT, delete via active: false) di konfigurasi D31 - write background - org fail-closed melalui investor induk, perubahan WORM - log + profileversion bump per baris.
· kamo-shared-library
Anak InvestorDelegation baru
Delegasi adalah granular per (investor, program), bukan sebuah InvestorConfig kasar Boolean. Tambahkan Otoritas Delegasi {DELEGATED, NON _ DELEGATED}, Entitas InvestorDelegation (mlos _ investor _ delegasi, program opsional; null = Reporor-wide default) + repo, and drops * * * * * * * * * * * * *
· kamo-shared-library
[AUS] AusconnectionConfig entitas - per-org per- pasar DU / LP koneksi
Pemilik direktif # 6: masing-masing org mengkonfigurasi sendiri AUS vendor APIs (Fannie DU / Freddie LP / USDA GUS) per pasar hipotek, dalam pengaturan perdagangan Lannis. Model data pendiri: AusConnectionConfig (mlos.config, tabel mlos _ aus _ connection _ config) - satu baris per (Lender profile, AusKind); karena LenderProfile adalah satu-per- pasar, keying oleh Pinder ProfileId membuat pasar ini. Mengembalikan enum AusKind yang telah ada (DU / LP / GUS) dan VsupporKategoryA.US kosakata daripada menciptakan yang baru. Rahasia saat istirahat: Rahasia API hanya disimpan sebagai sekreteks AES-256- GCTCiphertext (dienkripsi oleh PlatformSecretCipher pada tulis, mencerminkan Koneksi Sosial / PlatformOOtoritas) dan tidak pernah dalam sebuah DTO - baca ekspos sukredensial sebagai gantinya. clientId / endpointUrl / configJson tidak rahasia. Unik (profil, aus _ kind). Pengontrol / tulis latar * * * * * * * * * * * * * * + kamo- internal Tab koneksi AS- + i18n + KI (tabel baru) bangun ini selanjutnya; vs permarket orgasme-scoped tekad adalah konfigurasi-keputusan tulang belakang muncul ke pemilik.
· kamo-shared-library
[ImageAstical Type] tambahkan LOAN - gambar melekat ke sebuah pinjaman, jenis doc dibutuhkan
Pemilik direktif: gambar dapat dicantolkan langsung ke pinjaman hipotek, selalu dengan Tipe dokter yang relevan. Tambahkan LOAN ke Tipe ImageAsmemungkinkan (id 11, ember imagining- pinjaman), mirror the ACCOUNT documents-collection flags: isAllowDocType = true + IsAllowDocTypeOpt = false, so a lentenant 's doc type dibutuhkan dan NOT org- Pilihan. Tambah DocType () is AllowDocType &! IsAllowDocTypeOpt) jadi unggah path stelve 'always a doc type'. Persistence- safe dengan NO KI / schema perubahan: lmg.astiId tidak memiliki @ Enurated (baku ke ORDINAL) dan tidak ada batasan CHECK, sehingga menambahkan pada END menjaga setiap baris yang ada ordinal (uji penjaga LOAN- is-last). 3 tes hijau. Koordinat berikut-up (ditandai): (1) Menyediakan imajinasi- pinjaman ember MinIO melalui KlusterServices sebelum loan-doc upload pertama; (2) bangun kembali Tipe ImageAscoptic konsumen (DocsService melakukan nilai () [id] - harus tahu LOAN sebelum id LOAN tiba: * * * * * * * * * * * * * * * Ambillah membangun CI berikutnya); (3) paksa DocType () di loan-doc upload save path.
· kamo-shared-library
[sign-convention] model validators konvensi + Adjustment
Sesuai aturan kanonikal pemilik. Uang domain inti tidak pernah menyandi makna dalam tanda: - * * * * * * * * * * * * * * / progresif - aset, penerima, hutang, biaya, biaya, kredit adalah kejanggalan POSITIVE dalam mereka sendiri ruas (aturan 1-3); nilai negatif gagal dengan cepat. - Penyesuaian Arah {INCRESE, DECREASE, CREDIT, DEBIT, PREMIUM, DISCOUNT} - rate / penyesuaian harga (LLPAs, SRP, harga penyesuaian, konsesi, rebates) mengekspos sebuah arah eksplisit, tidak pernah sebuah nomor signed (aturan 5). - * * * * * * * * * * * * * * + the self- validating adjustment record - menolak besarnya yang tanda konflik dengan arah yang dideklarasikan (aturan 6); Penyesuaian Ditandatangani tidak dapat dibangun. Aturan 4 (akuntansi + / - hanya hidup di lapisan GL) dan 7 (hanya menandai adaptor lapisan) adalah batas arsitektur penjaga memaksa dengan tinggal di CORE dan Menolak encoding yang ditandatangani - konversi sign-bearing untuk investor / gudang / akunting / NICE feed tetap keluar dari domain oleh konstruksi. 4 tes hijau.
· kamo-shared-library
Font color = "# 404040" 5.A: kanonical BorrowerScenarioProfile + ProductDiscopyGate
Per pemilik # 5. Sebuah direktif: SkenarioSupporcy Policy harus mengkonsumsi sebuah canonical Peminjam Profil Skenario yang dihasilkan dari data URLA normal, tidak pernah bentuk mentah / UI, dan sumber masa depan (AUS / OCR / AI / manual) UPDATE bahwa catatan kanonikal daripada bypass itu. - BorrowerScenarioProfile (mlos.asuch, tabel baru * * * * * * * * * * * * Satu-satunya sumber pinjaman dari kebenaran - 5 tipe produk URLA dims + an extensible Perhitungan - fakta JSONB + lastSource + versi. Mutable (accretes truth), audit by source + version. - BorrowerScenarioProfileService: Produksi FromUrla (loanFile, orgId) adalah genesis (baca normalisasi Loan / Properti segera setelah URLA normalisasi); applyUpdate adalah Only seam sumber kemudian digunakan (gagal keras jika tidak ada profil ada - genesis adalah URLA sendirian, menegakkan update- don 't -bypass); untuk Profile SupportProfile proyek 5 dims. - ProduktDiscopyGate: dinding legalnya berkonsultasi sebelum eligibilitas / harga - memecahkan Kebijakan Support Skenario (overrides + kode baku) atas canonical profile dan, pada penolakan, mencatat A WORM Aidecide diarahkan ke pelayan (NO _ ELIGIBLE _ PRODUCT, LEALLY REquists Human; DEFERED _ HARD _ STOP = HIGH, STEWARD _ Only = MEDIUM) melalui pilihan DecisionSpine. SUPORTED tidak menulis apa-apa. 10 tes hijau. Build-and-flag: membutuhkan jalankan KI (tabel baru) + service- flow kabel (call produceFromUrla at the URLA-normalization hook + gate.evaluation at product- penemuan entri) dalam layanan memiliki.
· kamo-shared-library
Font color = "# 404040" 12: 5.A ScenarioSupporcy Policy deferrall - interlock resolver (D36)
doc 12 baris 235 P0 - 'tertinggi termurah - leverage lifecycle tambahan'. Tembok kaki. di produkt- penemuan yang terus * * * * * * * * * * * * * * * * berjalan diam-diam sebagai maju pertama-liens (salah pengungkapan). ScreenarioSupportResolver (pure @ Componen) memetakan ScenarioSupportProfile (LoanType x Tujuan x Lien x Amortisasi x Konstruksi, yang ada tidak dimodifikasi URLA enums) untuk = = = = = = = = = = = = = = = = = = = = = = = = = = = = Matriks baku (D36): SUPPORTED = agen depan / bukan-QM api-lien beli / refi dengan a standard amortization (what the deterministic machine cover); STEWARD _ ONLY = Mengakui - tapi - di luar - v1 manusia dapat berasal (bawahan / HELOC, konstruksi / rumah perbaikan, GPM, atau lainnya dim LAIN - menangkap terbalik / komersial, sejak perumahan URLA enums have no value for them); DEFERRED _ HARD _ STOP = Gagal-ditutup ketika kritis dim adalah null. AI sehingga tidak pernah auto- berkembang produk non-v1. Penyewa SkaarioSupportPolicy override layer di atas (paling-spesifik pertandingan menang, terbaru versi istirahat ikatan; null dim = wildcard) untuk membuka sebuah produk untuk SUPPORTED atau harden itu 13 tes hijau. Build- and-flag: resolver + entity ship sekarang; produkt- penemuan WRING (berkonsultasi sebelum eligibilitas + emit sebuah AiDecision mengenai penolakan) dan KI untuk mlos _ skenaries _ support _ policy adalah follow- up (membutuhkan menjalankan KI - owner- gated).
· SecurityService
[08] RekoncidFactPublisher - los.pipeline.fact mempublikasikan seam (D34)
doc 08: terkunci * * * * * * * * * * * * * * * * * * * * * * * tidak harus mendapatkan sebuah NATS penerbit (yang edits tidak berubah). Tambahkan pembungkus ReconcidFactPublisher yang tidak dikunci bahwa kalibrasi, kemudian pada jumlah perubahan bukan-nol memancarkan los.pipeline.faces. < orgId > di arus LOS _ PIPELINE yang ada (los.pipeline. > telah mengikatnya - tidak ada stream baru / tabel), sehingga kesiapan loop dapat api. Arahkan kembali pemanggil tunggal (MortgageController 's conneccontroller titik akhir) di pembungkus; layanan terkunci tidak tersentuh. Penempatan (D34): co-located dalam SecurityService dengan satu-satunya pemanggil saat ini, bukan dalam MLOSKappalMarketsService as # 3.3 tentatively disarankan (yang diasumsikan sisi RCE- Penelepon yang belum ada. Invarian mandat - tidak pernah mempublikasikan dari dalam layanan terkunci - memegang cara baik. Usaha terbaik seperti LosselinePublisher: absen NAS atau sebuah kegagalan mempublikasikan login + ditelan, jumlah masih kembali. 4 tes hijau.
· kamo-shared-library
[12] [5.C AutonomyGovernor - kill- switch + force -steard- until- kalibrasi (D32)
DecisionGate sudah membawa sebuah GLOBAL static force-steward @ Value, tapi # 5.C membutuhkan dua hal yang tidak dapat diberikan: sebuah switch flippable yang dapat diaktifkan dijalankan ulang (jadi DB-didukung) di GLOBAL / Tenant / TASK _ TYPE granularitas, dan paksa -stear- until- N - Kalibrasi - contoh per task- tipe (P0 murah mesin kalibrasi degenerasi untuk peluncuran - doc 12 Tema C / Mc6.1). Gubernur AutonomyGubernur (pemerintah pkg) adalah Docstor OPTIONAL (Objectprovider, gated on mlos.govermover.enabled) consulted by DecisionSpine.record () - bentuk yang sama sebagai Pramugari. Hal ini ADD-HANYA, persis seperti dinding hukum: itu hanya dapat mengubah would- akan AUTO _ ECUTE menjadi route _ TO _ HUMAN, tidak pernah mengangkat routing, Jadi Gerbang Tak Berstatus Murni tak tersentuh. Dua kondisi gaya: (a) sebuah aktif AutonomyKillSwitch pencocokan (orgId, aifunction) - lingkup terluas memenangkan alasan; sebuah entitas dapat mutable / flippable, NOT WORM, diaudit melalui enagedBy / at; (b) kalibrasi bootstrap - platform-lebar non-test Pramugari Feedback menghitung untuk Keahlian di bawah mata (baku 50), dihitung oleh kuiri gabungan baru. Ketika Gubernur adalah penyebab routing, alasannya ditambahkan ke WORM AiDeciment sehingga tinggi-keyakinan keputusan yang pergi ke manusia tidak pernah bisa dijelaskan. otonomi tabel baru _ kill _ switch (additive DDL - KI run). 30 tes hijau (7 gubernur logika + 3 ditambahkan-hanya integrasi + 6 spine + 14 gerbang); semua empat DecisionSpine struktur diawetkan (ada penelepon tidak berubah).
· kamo-internal
[04] tabel risk--overlay - kotak kredit / geo / lapisan paparan (D31)
Tabung konfigurasi pasar MORTGAGE baru untuk resiko ganti: kategori (kotak kredit / geo konsentrasi / tipe properti / jumlah pinjaman / penipuan / batas eksposur) + aksi (reject / refer / counteroffer / flag) + opsional product -varian scope + effective window + an opsional JSON rule expression (validated for parseality klien - sisi, mencerminkan server 400). Tambah / hapus baris; hapus adalah suatu hapus keras. Penyewa setelah Investor, sebelum selalu - pada tab perjanjian. konfigurasi Types / configApi cermin pola koleksi D31; i18n melalui kamo- terjemahan - kamus repo.
· SecurityService
[04] slice E2 RiskOverlay collection CRUD (D31)
Risiko overlay (redunit- box / geo- konsentrasi / expoure- batas lapisan pada base credit box) sebagai koleksi konfigurasi pada spine D31: buat default konfigurasi Versi = 1 + prangko profil identitas + bump profileversion + validate- rollback + appends a WORM MlosConfigChungeLog; update / delete adalah fail-closed 404 pada baris profil lain; hapus adalah hapus hard audit sebagai {"dihapus": true}. RuleExpression adalah kolom JSONB - pengontrol parse- memvalidasikannya sebagai JSON sebelum menulis begitu buruk masukan adalah 400 bersih, bukan 500 pertengahan INSERT. Null / kosong diijinkan (kosakata aturan adalah lapisan tertunda, dibawa off- band untuk saat ini). 20 ujian tertulis-tulang belakang hijau (4 overlay + 4 investor + 6 lisensi + 6 langkah-override).
· kamo-internal
MORTGUR investor tab (daftar / add / remove) - [04] slice E2 (D31)
The 7th MORTGAGE config tab: Per- investor * * * * * * * * * * * * * * Otoritas berbaris dengan chip perkiraan-status. Tambahkan melalui baris inline (kode + status + opsional * * * * * * * * * * * * * * * hapus melalui tempat sampah (hapus keras server- side). konfigurasi Types InvestorView / InvestorRequest + the 3 enum array + label pembantu; konfigurasi * * * * * * * * * * * * * * * terdaftar sebagai tab 'consiors' setelah lisensi, sebelum perjanjian. Bahasa Inggris melalui terjemahan - kamus repo. tsc bersih.
· kamo-internal
Garis waktu sosial unified UI di / marketing / sosial
Siaran langsung, antar-penyedia animasi menggunakan gaya feed clubhouse: virtual Timeline, penyedia chip filter, SosialPostCard (capability-gated reply / react / delete), multi- provider SocialComposer (per- provider kapabilitas hints + fan-out chip hasil), facebook- gaya NewPostsPill (tidak ada autotoscroll), use SocialFeedWebSocket hidup melalui / topic / social / feed / {orgId}, dan rute proxy / api / media / sosial / *. Aksi penulisan gated on manvaged _ SOCIAL _ MEDIA; capability-driven feature-hiding all.
· MediaService
Backend timeline terunified (persistensi makan, adaptor, relay hidup)
SosialFeedService tetap memposkan / komentar ke dalam skema MediaObj / MediaObj (Menggunakan kembali model obrolan); SosialFeedMapper membangun kawat DTOs; SosialTimelineController melayani gabungan feed + kapabilitas dan multi- provider compose fan-out, reply, bereaksi, hapus. Acara makan menerbitkan sosial.lest. {orgId} - > / topic / sosial / feed / {orgId} (relay + crosstenant SUBSCRIBE Guard). Penggemar SosialInboundConsumer keluar untuk memberi makan item; polling menyapu Backfills. Semua 5 penyedia adaptor * * * * * * * * * * * * * * * * * mengimplementasikan SosialFeedAdapter ke maksimal dari masing-masing API, capability- gated.
· kamo-shared-library
Garis waktu unified SPI + entitas pada skema media
Gunakan kembali Medisesi / MediaObj untuk menyimpan posting sosial dan menjawab (post = MediaObj, komentar = child MediaObj melalui MediaObjMsg.parent, provider linkage on MediaObjsocialRef). Tambahkan antar muka Adapter Adds SosialFeedAdapter (feed ops tetap mati Path Adapter SocialProviderDM (MediasionSosialFeed (per- koneksi feed sesi), MediaObjSocialRef kolom feed, SocialObjKind, dan terkembang matriks ProviderKapabilitas yang mendorong per- penyedia UI bersembunyi.

Alam semestamu menunggu.
Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.
Gratis selamanya — tidak diperlukan kartu kredit