Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· SecurityService
Pramugari-pasar Kapten baca proksi untuk Pusat Perintah
Tambahkan suatu MLOS-named, proksi baca-saja yang memungkinkan kamo- internal Capital & Risk Pusat Perintah mencapai layanan MLOSKappalMarketsService tanpa mengekspos internal jaringan atau rahasia ke peramban: - MlosBaseController: self-contained OTK-session helers (org + operator / god gerbang). TIDAK memperpanjang dasar LOS uang keras dan tidak memperkenalkan nama LOS MLOS adalah sistem yang berbeda. - MlosKapten MarketsController @ * * * * * * * * * * * * * * * * memecahkan operator org dari sesi, gerbang pada operator (mode God-), menyuntikkan operator sendiri organzationId ke org- scoped MLOS membaca (tidak pernah klien nilai), dan fail- menutup komposit oleh -id baca terhadap cross-org akses. - MlosCapitalMarketsClient: RestTemplate ke layanan Kalomloscapitalis dengan X-Internall-Auth rahasia bersama (organisasi dilewatkan sebagai query param). - konfigurasi: mlos.capital-markes.url (env-overriable). Reuses the already-wired Pelajaran. rahasia. Mencapai melalui APIService selimut / api / keamanan / * relay.
· kamo-internal
Konsol perintah Pusat Perintah MLOS Capital & Risk Center
Tambahkan konsol hipotek asal-asal asal di bawah / perdagangan (pasar MORTGAGE tab), mengganti placeholder intents / commitment sub-tab dengan MortgagePrawarder Bagian + batin pramugari layar tab. Layar pertama: Ibu Kota & Pusat Perintah Resiko di MLOSCapitalMarketsService yang dikirim dibaca (kunci oleh status / skenario + pipeline- pendanaan P (fund) p5 / p50 / p95), saat ini fixture- didukung dibelakang klien yang diketik (satu berkas swap ke jalur baca langsung). - Bisa dipakai ulang console lebar penuh: ConsoleShell, SectionCard, KpiTile, StatusPill + motion wrappers (Countup, Stagger, Crossfade) - reduced- motion sadar, white- label melalui --color-primary. - Fans Pendanaan Tanda-tangan Probabilitas Fan (p5 / median / p95), pipa kunci yang dapat disaring dengan perhitungan-nada, laci kunci-detail (garis waktu lifecycle + AI keputusan rasional), segmen rincian, jujur "datang segera" strip. - Keyboard / ARIA pada semua baris interaktif, kontras WCAG-AA, next- intl keseluruhan.
· kamo-internal
Sistem Wide toggle + reduit- balance editor + cascade filter; riwayat anggota filter / links / pagination; injeksi ikon + INJECT mengkonfirmasi
- / lead / kredit: right- aligned 'System Wide:' Aktif / Suspend dropdown; Saldo Kredit gunakan Sel InfinityCell (invalidates rendah, lets as-is); Saringan produksi cascades dari Vendor (non-aktif / reset ketika vendor = Semua). - / lead / history: pengelola - hanya filter Anggota (VIEW _ LEADS pemegang, alfabet), ID timbal + nama kontak link ke memimpin, paginasi server-side penuh. - / lead / available: Petunjuk Uji Suntikan sekarang adalah sebuah icon-only tombol dengan tooltip. - Dialog Konfirmasi: opsional penantang prop (Inject menggunakan 'INJECT'); penghapusan mengalir menjaga kata acak tidak berubah.
· SecurityService
Sistem-lebar toggle, head-views, kredit-balance edit, pagination history
- / kredit / sistem- wide GET + PATCH (org kredit -suspensi), / kredit / lead-views (VIEW _ LEDS Selendang pemegang. - Credit- keseimbangan penyuntingan pada PATCH / allotments / {id}: nomor lower melalui invalidasi, null = NULL. - / lead / history now paginated (page / size / total) + return lead contacName. - availalleSummary + available () gates penerimaan kredit pada org Sistem Wide switch.
· kamo-shared-library
Kredit systemwide suspend, redunit.balance invalidation, paginated history
- Organ LeadConfig (ORG _ LEAD _ CONFIG tabel): org- lebar 'System Wide' switch yang suspends CREDIT-BASED lead otomatis assignmen (FFA tidak terpengaruh); gated in accept NextLead (new Hasil SISTEM _ SUSPENDED). - * * * * * * * * * * * * * * + repo invalidateCreditsByIds: kurangi anggota yang tersedia keseimbangan ke target dengan membatalkan kelebihan tua-pertama. - CreditAssignment Histories Service: server- side pagination (getHistory Page / PagedHistory) + per-entry lead contactiName (batch- diselesaikan untuk halaman yang terlihat saja).
· kamo-internal
Pecah Lead Credits ke dalam Aksi Tersedia / Sejarah / Kelola
Urutkan ulang aksi top-right ke: Tambahkan Lead Baru, Leads Tersedia (leads / lead / avable, Ikon Bolt + indikator ketersediaan hidup, yang ditunjukkan dengan Extent / Receive), Riwayat (leads / history, Ikon sejarah), Manage Credits (1f / lead / kredit, ikon Kartu Kredit, hanya manajer). Mengganti tombol 'Lead Credits' tunggal yang menunjuk pada / lead / allotments mengarahkan.
· kamo-internal
Suntikkan aksi Lead Uji pada / lead / tersedia (hanya manajer)
Tambahkan tombol 'Petunjuk Tes Inject' di samping Terima untuk setiap vendor / produk, hanya ditampilkan ke anggota dengan Manvage _ CREDITS. Buka dialog konfirmasi, lalu arahkan ke injeksi baru titik akhir; timah sintetis mendarat di kolam renang dan jaringan hidup segar.
· SecurityService
Inject test lead + fix Manage- Credits list untuk grant- all admins
- Baru POST * * * * * * * * * * * * * * * * * * * * (Manage _ CREDITS): Membuat sintetis 'Void > Uji Lead' (John Doe / 555-555555 / Noreply @ < org domain dasar >) dengan Penugasan Assignment = true ke dalam pasar / vendor / produk yang diberikan otomatis pool sehingga arus Terima dapat dilaksanakan akhir-ke-akhir; menerbitkan ketersediaan untuk pemutakhiran langsung. - Mangal - Credit daftar anggota Eligible- sekarang serikat besar - semua anggota (pemilik / admins yang * * * adalah populasi dengan setiap hak) dengan query eksplisit -right, sehingga grant- semua admin yang memegang SPEND _ RECEIVE in- session tetapi tidak memiliki baris eksplisit Anggota RightsApplied sekarang muncul dalam daftar. - Diekstrak grand sesi - semua deteksi ke GrantAllRoleResolver dan menggunakannya kembali di baik PostAuth * * * Service (tidak ada perubahan perilaku) dan LeadCreditController.
· kamo-shared-library
Simpan kunci berkas asli yang diunggah pada run LeadImpor
Tambahkan SOURCE _ FILE _ KEY + SOURCE _ FILE _ CONTENT _ TIPE kolom sehingga jalankan referensi berkas asli terarsip dalam MinIO (KamoInitializer menambahkan kolom pada run berikutnya).
· kamo-internal
Arsip & unduh berkas impor asli
Pada Start Impor berkas mentah diunggah (susah payah) dan kuncinya dilewatkan ke impor POST; Impor masa lalu menampilkan tombol Unduh untuk dijalankan dengan berkas yang diarsipkan. Proksi + 2 rute (source- file upload + download), + 2 i18n kunci.
· SecurityService
Arsipkan berkas asli ke titik akhir pengunduhan MinIO +
Objek Layanan MinIOStorageService; POST / source- berkas menyimpan unggahan mentah dalam privat internal bucket; GET / {id} / source-file stream kembali (org-check); kunci threaded melalui POST impor dan peristortRun; GET sejarah sekarang kembali hasSourceFile.
· kamo-internal
Impor Templat + Impor Masa Lalu sub- tab, auto- detect, re- import
- Sub- tab bar dalam LeadManualImportManager: Impor Leads 124; Impor Templat Dalf124; Impor Masa lalu - LeadImporTemptateManager: daftar template / create / edit / delete + upload- against- template (Penting-as- adalah atau menyesuaikan pemetaan); reuse FieldMapping Antarface dalam mode file-agnostic - LeadImportHistory Manager: jalankan daftar dengan ikon galat impor / total +, laporkan kesalahan, re- impor baris gagal (penyesuaian peta opsional) - Autodetect: pada parse berkas, header POST ke / deteksi; pilih template yang cocok atau buat baru; simpan -as- template di akhir dari impor segar - FieldMapping Interface: parsedData opsional + header prop untuk mode template- edit - Rute proksi berikutnya untuk lead-import- templates / * dan * * * * * * * * * * *
· SecurityService
Persist runs / record, template CRUD, header autodetect & re-import
- LeadImportPersistenceService: header normalize + SHA3 sidik jari (memerintahkan / tidak memerintahkan), pemetaan / row JSON bundaran-perjalanan, tetap berjalan + bukan-sukses catatan, template mendeteksi (Jaccard) - LeadImportTemplateController: * * * * * * * * * * * * * * CRUD + / detect (org- scoped) - LeadImporController: real paged GET history; POST persist the run + non- sukses baris dan mengembalikan imporId nyata (berkas Nama / templateId melalui param query); + GET / {id} / record dan POST / {id} / reimport-failed; proceImpor refactored ke emit perrow RowOutcomes (global indeks baris, createdLeadUid) ketika menjaga Phase- 0 perbaikan pembenaran
· kamo-internal
Indikator ketersediaan langsung pada tombol Lead Credits
Sorot indikator NavPri Leads pada aksi 'Lead Credits': hijau / merah titik status (hijau = memimpin diterima sekarang melalui FFA atau kredit, merah = Tidak ada) dan pulsa hijau bersinar ketika memimpin kredit dapat diterima sedang menunggu. Gated pada sinyal SPEND _ RECEIVE _ LEAD _ CREDIT (leadAlert.active). Hijau tetap di sini (Ini adalah aksi kredit), tidak seperti tema - agnostic putih NavPri berkedip.
· kamo-internal
Peringatan langsung NavPri - titik hijau / merah, berkedip, popup kebakaran, trim tepi
- LeadAlertProvider (global, dipasang di tingkat NavPri): WS-driven / avalilable- ringkasan; drive semua keadaan - Ikon NavPri Leads: titik hijau (dapat menerima) / merah (tidak bisa); kedipan yang dapat dilihat ketika timbal kredit adalah Bisa diterima. Gated seluruhnya pada SPEND _ RECEIVE _ LEAD _ CREDIT - tidak ada indikator / popup tanpa hak. - NewLeadPopup: layar tengah popup api (nyala api animasi), Terima Lead / Not Now (keduanya) dimatikan 1s), otomatis-menutup dengan 1s memudar jika kolam adalah dikeringkan, tidak ada backdrop-dekat. Kebakaran saja pada kredit memimpin baru diterima ketika nav-top status adalah AVAILABLE. - LiveEdgeTrim: kamo- pemasaran LIVE shimmer membungkus sekitar semua 4 layar tepi sementara popup up. Semua hidup di NATS - > STOMP.
· SecurityService
Ringkasan GET / lead / available -untuk peringatan langsung NavPri
Agregasi penerimaan penelepon di seluruh pasar aktif (komentar gerbang + kredit / FFA / daily-spend aturan). Mengembalikan Dapat Diterima / Menerima Kredit / Memblok Komentar / Top Credit. Mengembalikan semua palsu bagi anggota tanpa SPEND _ RECEIVE _ LEAD _ CREDIT.
· kamo-shared-library
Persistensi tulang belakang untuk template impor, berjalan & per- baris catatan
Mengganti entitas stub kosong dengan kelas @ Entity asli (dimodelkan pada LeadIntake * preseden: UUID id, gen _ random _ uuid, DB default timestamp, status + @ Transient enum) plus repositori, jadi manual-impor template, past-import riwayat dan failed-row re- impor dapat bertahan: - LeadImportTemplates (+ headerHashOrdered / Sidik jari yang tidak terurut, dihitung, hapus) - LeadImporTeplateMapping * * * * * * * * * * * * * * * JSON) - LeadImport (jalankan header: jumlah, mapping snapshot, template / source linseed) - LeadImportRecords (per baris tidak sukses: rawRowJson, status, errorMessage) - LeadImportRecordStatus enum + 4 repositori Tabel dibuat oleh KamoInitializer (ddl-auto) pada run berikutnya; layanan tetap ddl-auto: tidak ada.
· kamo-internal
/ akunt- gaya header + tab, / leads Kontainer Kartu, penandaan kanan
- LeadsCreditLayout: gradien header pahlawan + garis bawah tab (cocok / akun); filter + grid dalam Kartu gaya bulat / leads-; Tab tersedia yang digated oleh SPEND _ REIVE _ LEAD _ CREDIT - Manage Credits grid population from members holding SPEND _ RECEIVE (anggota matriks produk x, create- on- edit); / leads- style filter container - / lead / penjaga tersedia di kanan; / lead / allotments redirect adalah right-aware - Tilikan timbal: Mark-as- Memerlukan -Penugasan kembali tindakan (MARK kanan) + penugasan reassign oleh REASIGN _ LEADS _ MANULLY - RoleRightType.ts: 3 hak baru
· SecurityService
Penugasan ulang oleh MARK kanan; Manage - Kredit kembali anggota dengan Menghabiskan / Menerima hak
LeadController: penempatan ulang tanda-tanda memerlukan MARK _ LEads _ REQUIRES _ ASSIGNMENT. LeadCreditController.mandor: mengembalikan Elgiblependuduk (SPEND _ RECEIVE _ LEAD _ CREDIT pemegang saham).
· kamo-shared-library
3 hak CRM + anggota -with-right query
RoleRightType: SPEND _ RECEIVE _ LEAD _ CREDIT (147), * * * * * * * * * * * * * * * REASIGN _ LEADS _ MANULLY (149) under CRM. * * * * * * * * * * * * * * * untuk daftar anggota memegang hak. Self - menyembuhkan pada boot SecurityService; tidak ada skema berubah.
· InitializerService
Codify # 4.2 procetment-writer single- live partial-unique backstop
Paling banyak persyaratan LIVE per (lenn _ file _ uid, img _ doc _ type _ id, party) sel kewajiban. * * * * * * * * * * * * * * * * app-layer idempotency dibaca tidak dapat menangkap sebuah concurrent double-instantiate (keduanya baca zero- live; kondisi + PERINSERT ke tabel yang berbeda perselisihan pada CRDB. Ini khusus - unik membuat struktur hidup tunggal. Cermin * * * * * * * * * * * * * * * Status Dokumenter Requirment adalah @ Enumerated (STRING). Idempocent CREATE JIKA TIDAK TERLEDAKAN.
· kamo-shared-library
* * * * * * * * * * * * * * * (Diterima - Kolom Hari ini)
Menghitung nilai anggota diterima melalui kredit / FFA untuk produk vendor sejak instan UTC (anggota lokal start- of-day). Dikonsumsi oleh LeadController / lead / tersedia.
· kamo-internal
Penugasan utama berbasis Credit- UI (tersedia / history / kredit)
- / lead / available: real-time vendor / product grid, atomik Terima (rute untuk memimpin), commant- gerbang terblokir negara, baris animasi saat memimpin yang diterima - / lead / history: timeline penempatan langsung + secara langsung dengan filter event- - # Lead / kredit: Manvage _ CREDISS-gated grouped grid;\ -capable Daily Allotment / Max Balance / Max Daily Expend / Credit Balance, Active / Suspend toggle, distribution, live blink - LeadsCreditLayout (nav tab + pasar sub-tab + 'CRM tidak dikonfigurasi' state + Quick Tips) - STOMP hook (used Creditit Assignments WebSocket) melalui MediaService; useLeadMarkets - 10 rute proksi; * * * * * * * * * * * * * * * / lead / allotments now redirecting tsc --noEmit: 0 error dalam berkas baru.
· kamo-shared-library
Tambahkan * * * * * * * * * * * * * * * untuk keputusan registri setengah
doc 11: 5.3 langkah 4 / d10 audit kompteness - setiap registry mint / penerimaan / supersede memancarkan pasangan WORM AiDecision + Loanidenfierevent. Ini menambahkan Aifunction yang * * * * * * * * * * * * * * * kolom dipesan untuk. Konstant addititif hanya (tidak ada bump versi, tidak ada DDL: ai _ function tidak memiliki whitlist CHECK - yang generik enum- Check menyapu berlaku).
· DaemonService
Daily- allotment kehilangan pekerjaan audit (hourly, per- anggota zona waktu)
Catatan baris Forfeised untuk anggota dengan allotments menetes yang tidak masuk pada mereka selesai hari lokal. Idempoten, menghasilkan baris GRANTED. Kompiles bersih (mvn).
· MediaService
Relay credit / lead-assignment NATS event to STOMP
Sub-guru secuity.leads. > dan security.redit. >, cermin masing-masing ke / topik /... sehingga CRM memutakhirkan jaringan Leads- Tersedia, Mangal - Credits, dan sejarah hidup. Kompiles bersih (mvn).
· SecurityService
Petunjuk Credit-assignment API * * * * * * * * * * * * * * * * * *
- LeadController: GET / lead / available, POST / lead / accept (atomic, communt - gated, FFA + credit), GET / lead / uncompected, POST / lead / {id} / marks-reassignment, GET / lead / history - LeadCreditController (Manage _ CREDIS): GET / kredit / pengelolaan grid, POST / kredit / distribution, POST / PATCH / kredit / allotments, POST / kredit / daily- grant - CreditAssignments Publisher: org- scoped acara NATS * * * * * * * * * * * * * * * - PostAuth * * * Service: hibah jatah sehari-hari pada tanda-tanda pertama anggota lokal Kompiles bersih (mvn).
· kamo-shared-library
Penghargaan - tugas layanan orkestra (shared-lib)
- LeadAllotment.isInfinitebalance (saldo kredit Gibbint -on -the-fly at accept) - CreditLeadAssignmentment Service: atomic Recept-Lead (pilih gringo recelet by claim, multi- instance safe), FFA bypass, komentar gerbang, marks-for-assignment (marked _ FOR _ REASSIGNMENT history) - DailyAllotdantment Service: Audit audit + kehilangan - CreditAssignments HistoryService: unified assignmen + credit lifecycle timeline - * * * * * * * * * * * * * * (org- lebar riwayat kredit) Kompose Layanan Lead * yang ada; tidak ada logika yang digandakan. Kompiles bersih (mvn).
· kamo-shared-library
Tugas credit- shared- lib pembantu
- * * * * * * * * * * * * * * * - kekuasaan 'harus komentar sebelum menerima gerbang lead '(komentar = anggota bukan-dihapus MediaObj dalam arus memimpin) - * * * * * * * * * * * * * * * - ven- vendor- kredit produk habiskan untuk pinjaman berbasis terima arus Lead Kompiles bersih (mvn). Tambahan; dikonsumsi oleh layanan penerimaan-orkestra (berikutnya).
· kamo-shared-library
Petunjuk kredit - penempatan model data (shared-lib)
- Lead: applisit assignment flag + markedForReassignment At / By (nulable; null acctor = vendor / API import) - * * * * * * * * * * * * * * + eventTypeForKey routing + registry deskriptor - * * * * * * * * * * * * * * (orglebar sejarah melalui pembangun predikat bersama) - RoleRightType.MANUTAge _ CREDIS (146, CRM group) - sendiri-sembuh pada boot SecurityService - DailyAllotment Grant entitas + repositori (sekali -per- local- hari hibah, idempoten) - * * * * * * * * * * * * * * batas anggota hari - LeadRepositori: Jumlah kolam renang / fetch + pesimis-lock klaim (multi- instance aman) - LeadCreditRepositori: saldo produk per- vendor- + daily- menghitung pengeluaran Skema addititif saja (kolom nulable / default + tabel baru). Mengulang ada * * * * * * * * * * * * * * * Kompiles bersih (mvn).

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