Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · kamo-shared-library

    Memimpin hipotek membawa pinjaman - dinyatakan keuangan (pendapatan, kredit, harga pembelian, uang muka, saldo / cash-out)

    Permukaan yang ada * * * * * * * * * * * * * * dan menambahkan empat kolom yang menyatakan ke LeadClaimMortgage; kabel DTOs (read / update / create), registry bidang sejarah, dan LeadService buat + update. Ini adalah fakta-fakta peminjam yang diklaim (firewall dari URLA), memberikan petugas pinjaman kaya pre- 1003 gambar dari portal peminjam.

  2. · SecurityService

    Proses anggota uploads seperti org bg + gerbang dengan hak baru

    - ImageresizeClient baru menjalankan anggota latar belakang upload melalui SAME post- pengolahan sebagai org latar belakang (POST * * * * * * * * * * * * * * * * dan menyimpan hasil sebagai .webp. - ThemeBackGroundController: mengotorisasi semua lima titik akhir oleh hak-hak baru - Manvage _ OWN _ BACKGROUND _ IMAGES untuk anggota Anda sendiri, * * * * * * * * * * * * * untuk anggota lain (superset; god- mode bypass). Membaca menyelesaikan target pengguna anggota sehingga admins dapat daftar / menyajikan gambar orang lain; uploads store dibawah target anggota pengguna. - New GET / theme- backgrounds / active returns the session member 's own slideshow URL gambar (kosong = > org fallback) untuk lapisan latar belakang global. Rights auto- seed on boot via RoleRightsSyncService (membutuhkan shared baru -lib, (Yang disaksikan oleh yang didekatkan) yakni malaikat-malaikat yang didekatkan. Tidak perlu dijalankan KamoInitializer.

  3. · kamo-internal

    Gate My-Profile backgrounds by the new rights + member / org slideshow

    - Gerbang Profil saya "Latar Belakang & Tema" bagian oleh Manage _ OWN _ BACKGROUND _ IMAGES (diri) / * * * * * * * * * * * * * * * * * * * * * * * * * (lain); biarkan background- admin Buka profil anggota lain. - Persist pilihan org- vs- sendiri via setiap latar belakang bendera isInslideshow (org = > kosong aktif, sendiri = > semua aktif) - tidak ada perubahan skema; heuristik pengambilan sekarang mengambil toggle dari gambar aktif untuk mencocokkan apa slideshow melayani. - Selangkangan Organik lebih suka latar belakang aktif anggota sendiri (GET * * * * * * * * * * * * * kegagalan-lembut) dan jatuh kembali ke Latar belakang org. Rute proksi baru / aktif.

  4. · kamo-shared-library

    Tambahkan Hak Gambar Latar Belakang (Kelompok Umum)

    Tambahkan MANFAL _ OWN _ BACKGROUND _ IMAGES (165) dan * * * * * * * * * * * * * * (166) ke RoleRightType, serviceType null sehingga mereka mendarat di pengaturan Umum grup (mirror the STATE _ LICENSING _ OWN / ALL preseden). Gate the per- member fitur background- gambar pada Profil saya. Tambahkan saja; versi tidak berubah.

  5. · SecurityService

    Beritahu petugas pinjaman yang ditugaskan ketika peminjam pinjaman semua diterima

    Kebakaran LOAN _ DOCS _ READY _ LO di titik memuaskan bersama peminjam DOC _ COMPLETE. Selesaikan LO via loanFile - > * * * * * * * * * * * * * * * - > Anggota; sendiri-dijaga untuk pinjaman yang dikumpulkan penuh, sebuah LO ditugaskan, dan email resolable.

  6. · kamo-shared-library

    LOAN _ DOCS _ READS _ LO canonical template - notify asted LO when a loan 's docs are all in

  7. · kamo-internal

    Ajukan petugas pinjaman untuk kesepakatan dari bagian original

    Bagian baca-saja Loan Precient sekarang memiliki picker petugas pinjaman (org anggota via / member / names) + Assign, memanggil PUT * * * * * * * * * * * * * * * * * pada Tingkat transaksi (warisan dari semua pinjaman anak). Pada assign itu re-fetches aplikasi sehingga proyeksi langsung mencerminkan nama LO / NMLS / negara - lisensi. Tersembunyi sekali beku (as- berasal). Hal ini membuat seluruh sistem- dikelola originator beroperasi - sebelum ini tidak ada cara untuk mengatur tugas, sehingga bidang LO selalu diproyeksikan kosong. (New UI string inline tertunda sebuah i18n pass, pencocokan daerah pemberitahuan yang ada.) Verifikasi: tsc --noEmit bersih.

  8. · kamo-internal

    Kolom konfigurasi penyedia untuk akses surat awan

    Tambahkan config memasukkan resolver EmailService dibaca ke awan otentikasi kotak surat: - Google Workspace: service- account key (JSON) untuk domain- wide- delegasi IMAP. - IceWarp: host surat, kata sandi kotak surat layanan, keamanan transportasi. - Exchange (on- prem BASIC / NTLM): host surat, kata sandi kotak surat layanan, transport Keamanan.

  9. · EmailService

    Rute semua surat penyedia awan melalui IMAP / SMTP dengan Oaut2 (XOAUTH2)

    Penyedia Cloud (Microsoft 365, Exchange Online, Google Workspace, Zoho, IceWarp) warisan membaca / mengirim dari * * * * * * * * * * * * * * tapi resolver tidak pernah populasi kredensial IMAP / SMTP bagi mereka, jadi setiap folder / pesan dibaca melemparkan Mailbox NotConfiguredException - > layar "email tidak dikonfigurasi" (misalnya org pilihan di M365). KamoMail bekerja hanya karena itu saja diterima kredensial (Dovekot internal). Sekarang semua penyedia mengalir melalui satu jalur IMAP / SMTP; KamoMail tidak berubah. - Surel: spesifikasi koneksi penuh * * * * * * * * * * * * * * * * * * - ImpapStoreFactory + EmailSmtspService: SASL XOAUTH2 (native com.sun.mail) atau basic auth per spec; STARTTLS dibutuhkan (fail- closed) sehingga token tidak pernah transit cleartext. - MailProviderResolver: per- penyedia kabel kredensial + anggota kotak-surat baku + Token OAuth menyegarkan. M365 / Exchange- Daring gunakan app- hanya token kredensial client- (outlook.office365.com; * * * * * * * * * * * * * * * penyewa berasal dari domain kotak-surat; Google menggunakan layanan-akun domain- lebar delegasi; Zoho menggunakan disimpan token OAuth; IceWarp / on-prem Exchange menggunakan auth dasar dari config penyedia. - Email ImpapService: penyelesaian Dikirim / Draft melalui RFC 6154 SpeCPIAL-USE sehingga mengirim salinan tanah dalam folder penyedia asli (Gmail [Gmail] / Mengirim Surat, Pertukaran Item Dikirim). - ProviderController: tetap pada bagian konfigurasi ke dalam konfigurasi terenkripsi Json (sebelumnya diturunkan); daftar kemampuan tanpa menambang sebuah token. - Menghapus stub Notificer Realtime dari penyedia awan (sampul polling) realtime; tidak push- webhook infra). M365 / Exchange- Daring membutuhkan aplikasi IMAP AccessApp + SMTP. SendAsApp dengan admin persetujuan dan New- ServicePrincipal di Exchange Online (scopable per kotak surat).

  10. · kamo-internal

    Deal- scope sebuah aman upload dari tab dokumen akun

    Dialog upload kini menawarkan pilihan pemilih "Deal" (akun transaksi); memilih satu perangko loantransaktionId sehingga sebuah time-sensitive doc (kredit laporan, laporan bank) terikat dengan kesepakatan itu dan hanya memenuhi pinjaman - sementara "Account-wide" membuat penggunaan ulang abadi untuk dokumen identitas. Selesai transaksi-scoped model dokumen end-to-end. Verifikasi: tsc --noEmit bersih.

  11. · SecurityService

    Paket upload dapat menangani-scope dokumen (loanTransaction Id)

    Brankas upload sekarang menerima sebuah loantransaction opsional Id, dicap ke Anggota Dokumen sehingga doc yang sensitif waktu (laporan kredit / bank) dapat diikat untuk transaksi tertentu - penjaga kepuasan kemudian berlaku hanya untuk kesepakatan itu pinjaman. Dikeluarkan = akunt-timeless reuse (tidak berubah). Muncul di MemberDokumentDTO. Diverifikasi: mvn kompile bersih.

  12. · kamo-internal

    Per-device switch latar belakang - plain gradien atau org gambar slideshow

    Tambahkan dua ikon ke kanan atas (di bawah pil percobaan; ia naik ke pil tempat sekali sidang berakhir) untuk memilih latar belakang konsol: Gradien sederhana (standar, kinerja terbaik) - latar belakang oklab- blob yang ada. - Tampilan foto org - menggunakan kembali aset bertema yang sama situs login / register gunakan: < themePath > / json / config.json backgroundImageCount GNU < themePath > / img / bg / {n} .webp, preloaded dengan 404s menjatuhkan dan crossfaded (menghormati - reduced- gerakan; jatuh kembali ke lapangan polos jika tidak ada gambar tuntas). Pilihan disimpan PER DEVICE dalam localStorage (useBackgroundMode), bukan server- sisi, karena itu adalah pilihan render / perf yang harus tetap lokal. The Backdrop bersama menghormatinya (rumah + pengaturan); toggle hidup di rumah. Masing-masing ikon memiliki tooltip. Rumah baru, latar belakang. * Dikirim ke kamus.

  13. · SecurityService

    Bekukan snapshot initial Loan Estimate (Reg Z / TRID)

    Melengkapi lifecycle pembuat: Proyeksi resolve bersama () sekarang memberi makan KEDUA membaca proyeksi langsung dan pembekuan (tidak ada drift). Pada mengeluarkan sebuah pernyataan INTIAL _ LE set, MortgageDisclocuureController membekukan loanprecient awal - menangkap yang diproyeksikan LO + org + status-lisensi ke baris WORM dan prangko fromzenAt / frozenState (idempoten; @ PreUpdate guard block setiap perubahan kemudian). Setelah ini org / LO rename tidak pernah alter yang peminjam berasal dengan. Diverifikasi: mvn kompile bersih.

  14. · kamo-internal

    Transaksi-pipa pertama - baris PrimeReact yang dapat diekspor

    Mengganti jaringan pinjaman datar dengan Data Utama dari TRANSAKSI yang dimulai ambruk dan berkembang DI TEMPAT kepada pinjaman anggota mereka (tidak ada laci dua klik), jadi Pelayan langsung membuka pinjaman khusus. Kolom induk: Transaksi #, Status Deal, Peminjam, Pinjaman, Target Tutup; baris anak: Pinjaman #, Peminjam, Properti, Amount, Status, Buka. Pinjaman Yatim Piatu menjadikan sebagai bentuk pinjaman tunggal. Terus mencari, status filter, CSV export, New, and the Board / HMDA entry point. Prioritas 10 (MIT). Juga melakukan refactor spesifikasi desain. Verifikasi: tsc --noEmit + berikutnya membangun keduanya bersih.

  15. · kamo-internal

    Tambahkan lagi pil percobaan ke atas dan kanan (warna - menukar pil NavPri)

    Menjaga garis pengadilan dalam strip status kepala sekolah dan menambah pil terkemuka di atas -kanan sehingga mode percobaan org tetap jelas. Ini adalah NavPri diperluas uji coba pil dengan warna penuh / teks bertukar (latar belakang utama, putih teks / ikon) menggunakan * * * * * * * * * * * * * * * label yang sama; ditampilkan hanya untuk staf (TEAM _ MEMBER) pada hak TRIAL.

  16. · kamo-internal

    Sisipkan langsung antara "sambil menyeret, bukan hanya drop- to- swap

    Sebelumnya perintah hanya berubah pada drop, sehingga membaca sebagai bertukar ke slot. Sekarang daftar kembali hidup saat Anda menyeret: dnd-kit onDragOver bergerak menyeret pilihan ke slot pilihan hovered (array Move), sehingga anggota melihat persis di mana akan mendarat di antara yang lain. gunakan HomeLayout.move kemajuan urutan ref sinkronisasi sehingga berturut-turut dragover kejadian compose benar, dan mengambil tanda simpan sehingga pratinjau langsung menulis; urutan akhir tetap sekali di drop melalui commit baru ().

  17. · kamo-internal

    Pengalih pinjaman sibling pada tilikan aplikasi

    Transaksi dapat mengelompokkan pinjaman berganda; tajuk aplikasi kini menampilkan switcher untuk melompat antara perjanjian pinjaman saudara (tersembunyi untuk kontrak tunggal) daripada hanya menjadi Dapat dicapai melalui pipa. Verifikasi: tsc --noEmit bersih.

  18. · kamo-shared-library

    LoanFileDTO.loanTransaktionId (tampilan aplikasi tahu kesepakatannya)

    Permukaan transaksi pinjaman sehingga tampilan aplikasi dapat menunjukkan / beralih saudara pinjaman. Diverifikasi: mvn install bersih.

  19. · kamo-internal

    * * * * * * * * * * * * * * * (FE jenis)

    Mirror daerah backend untuk kolom Transaksi Jalur pipa #. Verifikasi: tsc --noEmit bersih.

  20. · SecurityService

    Transaksi permukaan Nomor pada TransationSummaryDTO (transsation #)

    Baris pipa pertransaksi sekarang membawa jumlah transaksi manusia. Verifikasi: mvn kompile bersih.

  21. · SecurityService

    Proyeksi pembuat memecahkan lisensi per- negara

    Melengkapi Proyeksi asli hidup: yang ditugaskan LO 's Pramugari (NMLS _ MLO) untuk PROPERTY SUBJECT 's negara (dari property.addresss.subdivisi, dinormalkan ke ISO-3166-2), yang secara mata pelajaran -valid, populator asli StateLicenseId. Diverifikasi: mvn kompile bersih.

  22. · kamo-internal

    Drag-and-drop ke opsi launchpad atur ulang, disimpan setiap anggota

    Anggota sekarang dapat memesan ulang opsi rumah mereka dengan menyeret, dan pengaturan adalah bertahan server - sisi per anggota (bertahan reload dan mengikuti mereka di perangkat) melalui umum yang sama ui- preferensi menyimpan tata letak nav menggunakan - yang baru 'homeLayout' kunci memegang ID pilihan yang dipesan. - Use HomeLayout (availableids) memuat perintah yang tersimpan, menggabungkan dengan opsi secara langsung - gated (opsi baru ditambahkan, yang dihapus drop), dan perists reorders dengan optimis, debounded PUT ke * * * * * * * * * * * * * * * - dnd-kit DndContext atas mason: MouseSensor (5px) + TouchSensor (250ms) sehingga klik cepat masih membuka sebuah kartu / yang sub- item sementara tekan -drag atur ulang (pointer-only, seperti nav hidup). Urutan ulang dilakukan saat drop target pengiriman cincin. FeatureCard akan draggable = {false} jadi link- drag asli tidak melawan dnd- kit.

  23. · kamo-internal

    Buat Materials tab pertama + default landing; hapus Overview

    Tinjau tab dihapus; Materials yang pertama sekarang. Indeks pemasaran mengarahkan ke yang pertama tab akses (Materials secara baku), jadi siapapun membuka lahan Pemasaran di Materials.

  24. · SecurityService

    Proyeksi awal langsung - org + ditugaskan LO, sedang dibaca

    GET / hipotek -apps / {uid} sekarang overlay a LIVE, sistem- dikelola proyeksi originator (dihitung saat dibaca, tidak pernah disimpan) kecuali baris dibekukan: nama org / NMLS / alamat dari Organisasi, dan nama petugas pinjaman / NMLS / TimberId dari anggota ASSIGNED ke transaksi pinjaman (nama legal via User.EmbNameFull.formall Full (), NMLS via Anggota. Identitas yang dimasukkan secara diam-diam dihapus - bagian hanya mencerminkan sumber kebenaran. Sebuah baris beku (awal LEE diterbitkan) adalah snapshot WORM, dibiarkan tersentuh. Sisa untuk proyeksi penuh: Pramugari negara bagian (membutuhkan subjek state on the app graph) and the freeze trigger at initiaI LE iscerance.

  25. · kamo-internal

    Loan Properate section is read-only / systems-organable

    Kartu Pembuat Pinjaman tidak lagi memberikan data URLA = 9 (duplikasi dari * * * * * * * * * * * * * * itu re- menangkap). Ini menghasilkan baca-saja: proyeksi LIVE dari petugas pemberi pinjaman + org sebelum Pinjaman inisial Perkiraan, maka beku as- berasal snapshot setelah (frozenAt / fromzenState / source sekarang di LoanOriginals atorDTO). Hapus masukan yang dapat disunting + patchmaker debounce Simpan sendiri. Backend proyeksi / beku kabel tanah berikutnya (SecurityService).

  26. · SecurityService

    Transaksi - level loan-officer penempatan + jumlah transaksi

    presure TransationForApp now caps an org- unique transctionNe (TXN- < uid >). Baru... + PUT / hipotek -apps / transaksi / {uid} / loan-officer set the deal 's inserved loan officer (a Umber.id, diwariskan oleh semua pinjaman anak) - sumber tunggal yang akan mendorong sistem- dikelola Proyeksi Loanpresor / Snapshot (original tidak pernah dimasukkan secara langsung). Operator... gated, org- scoped.

  27. · InitializerService

    Pembuatan / transisi - kolom pertama (@ Order 90)

    Kolom null Addititif + org-unique transction- nomor indeks untuk MLOS refaktor awal / transaksi: mlos _ loes _ contrances (transaksi _ number + assigned _ lo _ *), pinjaman _ original (frozen _ at / frozen _ state penanda WORM), mlos _ member _ documents (pinjaman _ trances _ id deal-binding). Idempoent.

  28. · kamo-shared-library

    Pembuatan / transkasi - pertama skema - LO penempatan, PEREMPUAN membeku, deal- scoped docs

    Tulang belakang untuk refactor pertama (spec) sistem-management-originator + transction- 2026-07-08): - LoanTransaktion: Transkasional Nomor (org-unique) + signnedLoanOfficerMberId (+ audit) - penempatan transkasional-level LO yang menggerakkan pembuat Proyeksi, diwariskan oleh semua pinjaman anak. - Loanpreacher: frozenAt / fromzenState + @ Preupdate WORM guard - si original adalah proyeksi LIVE dari anggota yang ditugaskan / org sampai Estimasi Loan inisial masalah (Reg Z / TRID), kemudian sebuah immutable as-berasal snapshot. LoanOriginalatorDTO mengekspos frozenAt / fromzenState / source (LIVE 124; SNAPSHOT). - Anggota Dokumen: loanTransaktionId dealding - a time-sensitive vault doc (Laporan kredit, pernyataan bank) adalah transkasi - scoped; NULL = akunt- abadi. Waktu - validitas tetap diatur oleh Kebijakan Bebas yang ada (TIDAK digandakan). Proyeksi / membeku / tugas logika tinggal di SecurityService (yang tergantung pada keduanya tidak berubah dan mlos), tidak di sini - inti terkunci tetap mlos- dihapus.

  29. · kamo-internal

    Tambah filter produk tergantung pada Vendor

    Tambahkan filter Produk ke batang filter / lead, segera tepat Penyaring vendor. Ini berperilaku seperti pasangan Status / SubStatus: dinonaktifkan sampai vendor dipilih, pilihannya adalah produk milik yang dipilih Penjual, dan itu jelas ketika penjual berubah. Filter sisi klien kondisi predikat dan filter sudah ada; ini kabel sampai dropdown.

  30. · kamo-shared-library

    Shared AusEngineering Clasfier - salah satu sumber kebenaran untuk pemetaan lembaga Mc8,2

    Programnya adalah... * * * * * * * * * * * * * * * Kunci pasar-ibukota - tahap AUS keras - berhenti membutuhkan klasifikasi identik, dan gerbang Fair- pinjaman harus tidak memiliki dua salinan yang dapat hanyut. Ekstrak tiga pemetaan murni ke * * * * * * * * * * * * * * * (statis, switch melelahkan = compile-dipaksa completeness / # 8.2 drift guard). Harga yang resolver sekarang delegasi Untuk itu, ibukota-pasar 'LockStageAusGate menggunakan hal yang sama. Addititif, tidak ada skema.

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