Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· 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.
· kamo-internal
AI auto-tag + caption UI; pengaturan cost-tier / vision penyedia (P3)
Pengaturan Al Ade Penyedia: setiap penyedia memperoleh tingkat biaya (Pilihan Light / Medium / Heavy) dan Mendukung potongan visi (+ list). Laci bahan: 'Saran tag dengan AI' (terima chip untuk mengaplikasikan) dan 'Hasilkan deskripsi dengan AI' - keduanya memanggil penyedia konfigurasi org sendiri melalui MediaService SlAlService; fail-closed with a clear message when no vision provider is set up.
· AIService
Provider cost-tier / vision Paspass + internal one-shot vision endpoint
AiProviderController baca / gema costTier + supportsVision. ProviderRouting Keuntungan layanan selectVisionProvider (orgId, tier). * * * * * * * * * * * * * * * jalankan satu- tembakan penyelesaian visi memakai kembali penyedia / adaptor org (tidak ada sesi / RAG / tools). AiInternall Controller Baru POST / api / ai / internal / vision (X-Internall-Auth, OTK-dibebaskan) untuk layanan -to-service penelepon.
· MediaService
AI auto- tag + caption via org penyedia (P3)
POST MaterialAiController * * * * * * * * * * * * * * * memverifikasi kepemilikan, menanamkan sebuah URL material bertanda tangan pendek, dan memanggil titik akhir visi internal AIService (org 's penyedia sendiri, LIGHT tier) melalui AiVisionClient. Larang tag parsing; gagal-tertutup jika tidak ada visi penyedia yang dikonfigurasi.
· kamo-shared-library
AiProvider biaya tinggi + bendera visi (dua sumbu kemampuan orthogonal)
Tambahkan costTier (LIGHT / MEDIUM / HEAVY melalui AiproviderTier enum) dan dukung Vision boolean ke AiProvider, jadi integrasi dapat memilih seberapa mahal penyedia untuk digunakan dan visi dukungan mana. Penemu repo bagi penyedia visi aktif. Kolom ditambahkan ke AI _ PROVIDERS melalui ALTER.
· EmailService
Server- side "tampilkan gambar eksternal" persetujuan
Menggantikan klien-lokal (Penyimpanan Lokalisasi) mengingat pilihan gambar eksternal dengan catatan anggota abadi. New RemotemImageConangService (fail- soft reads so pesan fetch masih bekerja sebelum tabel ada) + POST / api / email / remote-image- persetujuan untuk merekam persetujuan. Pesan penuh DTO sekarang membawa gambar-gambar jarak jauh Diijinkan (dicari oleh anggota + Message-ID), penduduk dalam pesan tunggal-pesan, thread, dan shared-mailbox mengambil jalan sehingga klien benih gerbangnya dari server.
· kamo-shared-library
Email RemotemImageConsent entitas + repositori
Catatan anggota-scoped yang dipilih oleh seorang anggota untuk menampilkan gambar eksternal (remote) untuk pesan spesifik, yang dikutip oleh anggota _ id + normalisasi RFC Message- ID (unik). Mengikuti email _ metadata ke- scoped pola (FilterRuleEntity). Backs server- sisi "tampilkan gambar eksternal" preferensi sehingga pilihan tetap di seluruh perangkat dan sesi. KamoInitializer menciptakan meja pada run berikutnya.
· InitializerService
Tambahkan INVESTOR _ PRICE kolom untuk tingkat _ locks + pinjaman _ pricing _ snapshots
@ Order (80) idempoten ADD COLUMN JIKA NOT EXISS (DECIMAL (9.4), pencocokan price- to-100 grid) sehingga MLOS RCE dapat mencatat benar harga eksekusi investor non- par pada mengikat lock- of- record dan yang terikat kutipan daripada par- by- omission. Bahan tambahan; Recording TranscriptMigrasi cermin.
· kamo-shared-library
Rekam harga investor pada RateLock + LoanPricingSnapshot
Rat mengikat-kunci-of-record dan kutipan yang terikat hanya membawa tingkat + hari kunci; titik awal / diskon ditinggalkan kosong, sehingga entitas inti membaca PAR sementara nomor harga sebenarnya * * * * * * * * * * * * * * * * * * price-to-100 dengan lender marjin dipanggang dalam) tinggal hanya di sisi MLOS-buku MlosLockRecord.locked Price. Tambahkan kolom INVESTOR _ PRICE (DECIMAL (9.4), yang cocok dengan paket-to-100 grid) untuk kedua entities + DTOs mereka + * * * * * * * * * * * * * * * Hal ini harga eksekusi INVESOR, sengaja TIDAK terurai ke titik peminjam (itu nets out margin and needs the fee model - membusuk sekarang akan salah negara peminjam titik, Reg-Z / ECOA disclosure error). Titik tinggal kosong sampai model biaya tanah; harga mentah sekarang diawetkan pada lock-of-record, bukan hanya buku besar samping. Dipopulasikan oleh RCE (MLOSCapitalMarketsService) dari FinalPrice; kolom terwujud oleh KamoInitializer RateLockInvestorPriceMigrasi (ADD COlummN JIKA TIDAK TERSIUM).
· kamo-internal
Biarkan admin menghubungkan RingCentral atas nama anggota
Pada pengaturan telepon anggota lain, sebuah admin dengan manajemen - VOIP hak (canManageVoipConfig) now see Connect / Reconnect / Disconnect for the member Akun RingCentral daripada baca-saja "mereka harus menghubungkannya sendiri" pesan - untuk kasus umum di mana sebuah sysadmin memegang anggota RingCentral Kredensial. Salinan koneksinya sudah jelas kau mendaftar dengan anggota YANG kredensial, dan target memberID dilewatkan melalui (server memaksa kanan).
· VOIPService
Izinkan admin untuk menghubungkan RingCentral atas nama anggota
Aliran RingCentral hanya melayani diri sendiri, jadi mengelola admin profil anggota lain melihat "mereka harus menghubungkan sendiri". Sysadmins umumnya membuat akun RingCentral anggota dan memegang kredensial mereka, jadi mereka harus dapat terhubung atas nama anggota. - Oauthority Controller anggota start / status / display sekarang menerima sebuah target opsional Kelenjar. Akting pada anggota lain memerlukan pemberian _ EXTENSI atau Kelola _ VOIP _ SETTINGS (mirror the profile- edit gate); self selalu diperbolehkan. - mulai juga memverifikasi anggota target sebenarnya ditugaskan contoh itu ( instance adalah org- scoped, jadi ini menegaskan same-org). - Siapa pun yang melengkapi login RingCentral masih menentukan identitas; assignned- vs- sambungan tanda ekstensi penjaga tidak cocok.
· kamo-internal
Pemakaian analitik + Sudut pandang (P2)
Catatan * * * * * * * * * * * * * * * kejadian dan dialog Insight dengan total org + Kebanyakan bahan yang digunakan (dengan unduhan + pratilik).
· MediaService
MaterialAnalanticController - peristiwa rekaman + agregat
POST * * * * * * * * * * * * * * * * (record) + GET / analytics (per-material jumlah oleh tipe total + org).
· kamo-shared-library
Entitas MaterialEvent + repo (analisis penggunaan)
Tambahkan-hanya kejadian penggunaan * * * * * * * * * * * * * dengan per- (imgId, tipe) kumpulan query. Tabel MATERIAL _ EVENTS (target CRDB DDL; KI auto- scan).
· kamo-internal
Persetujuan mengalir UI + load- semua penyaringan (P2)
Kontrol status di laci * * * * * * * * * * * * * * * status lencana pada lantai, dan saringan status dalam bilah alat. Juga memuat semua halaman bahan di depan (capped) sehingga pencarian / tag / kampanye / status filter meliputi seluruh pustaka, bukan hanya halaman pertama.
· MediaService
MaterialReviewController - peta status + set-status
GET / api / media / material / reviews (org-wide imgId peta status) + POST untuk mengatur status material (validasi, reviewer- stamped, upsert).
· kamo-shared-library
Entitas MaterialReview + repo (status persetujuan siside-table)
DRAFT / PENDENDING / APPROVED / ARCHIVED per material, diketaman oleh imgId (skema pencitraan tersentuh). Tabel MATERIAL _ REVIEWS (target CRDB DDL; KI auto- scan).
· kamo-internal
Per- anggota RingCentral connect + softphone web-phone v2 fixes
Softphone SDK perbaikan (ringcentral web-phone adalah v2.4.0, bukan v0.x adaptor target - kebiasaan lama wp.1f. * penggunaan melemparkan di init): - Tulis ulang RingCentralPhoneSdk untuk API v2: objek sipInfo tunggal, start () / call () / dump (), inboundCall / outboundCall event, early outbound kabel, disintesis bisu / tahan / bisu / tidak bermutasi, dan adopsi SDK per-call elemen audio sebagai # rc-remote-audio sehingga AV volume / perangkat routing bekerja. - PhoneSdk.SipInfo: tambahkan outboundProxyBackup + stunServers. - Usesoftphone: bersihkan spanduk yang macet - panggilan banner pada remote hangup selama ring; don 't tear down the SDK mid- call on credential refresh; guard against auto- jawaban + call-forward dua kali diterima. RingCentral koneksi anggota: - PhoneSettingsTab: self-serve "Connect RingCentral" card pada anggota sendiri profile (admins get read-only status), OAuth redirect handling, and an ekstensi - tidak cocok peringatan. - voipApi: anggota OAuth start / status / putus. - Use Softphone + Softphone Panel: Butuh Koneksi Anggota dengan "Sambung Rekening RingCentral Anda "prompt bukan kesalahan pendaftaran.
· VOIPService
Per- anggota RingCentral OAuth identitas + softphone SIP perbaikan
Softphone SIP kredensial perbaikan: - getSipCredentials: peta outboundProxyBackup + stunServers (web- phone v2 perlu mereka untuk WSS failover + ICE / media); throw ProviderException (502) daripada sebuah telanjang Runtimeexception (500) bahwa menangkap SipController yang terjawab; penjaga terhadap Identitas SIP ekstensi salah. RingCentral koneksi anggota: - RingCentralTokeResolver: solusi / segarkan token anggota sendiri dengan single-flight (RC memutar token refresh), perlu-terhubung kembali pada token mati, dan mencabut -dan putuskan. - OAuthorController: * * * * * * * * * * * * - memberId dari sesi hanya (self-serve), ruang lingkup Voipcalling, PKCE; hubungkan catatan callback sambungan tersambung. - SipController + PhoneProviderFactory: register softphone sebagai anggota Ekstensi OWN; mengembalikan 200 permintaan MenmberConnection diskriminator ketika tidak terhubung. - Anggota VoipConfigController: mengekspos status koneksi; membatalkan penugasan. - New- tabel membaca degrade anggun jika anggota _ voip _ oauth _ token belum dimigrasi.
· kamo-shared-library
Tambahkan Anggota VoipOauthortoken untuk koneksi anggota RingCentral
Pembalikan anggota OAuth token (memberId, provider, instanceId) extension-scoped Operasi RingCentral - softphone sip-proviction plus anggota apos; s panggilan pribadi log / voicemail / kehadiran. Terpisah dari org / instance Orfoauttoken (akunts-scoped). Butuh menjalankan KamoInitializer ke buat * * * * * * * * * * * * * * *
· kamo-internal
Koleksi / kampanye UI (P2)
Sisa daerah Koleksi Nav (buat / pilih / hapus), filter kampanye pada tampilan pengumpulan, dan koleksi dalam laci detail (tambahkan / hapus material, create- dan-add). Kabel through / api / material / kampanye / * + materialsCampagsApi; area kerja bergabung dengan peta butir klien-sisi seperti tag.
· MediaService
MaterialCampaignController - CRUD + item map + add / remove
/ api / media / material / kampanye: list / create / update / delete, GET / items (org- wide imgId emportigId peta), POST / add + / remove dengan pemeriksaan kepemilikan org-.
· kamo-shared-library
MaterialCampaign + butir entitas / repos (collection)
Pertama-kelas bernama pengkoleksi bahan di seluruh folder. Table MATERIAL _ CAMPAIGNS + MATERIAL _ CAMPAIGN _ ITEMS (target CRDB DDL; KI auto- scan pada run berikutnya).
· kamo-internal
Tags UI + access- level control (P2)
Tag (org- scoped, cross-cutting): tag chip pada ubin, sebuah tag filter bar (AND di pilihan), dan sebuah penyunting tag di dalam laci detail (assign / remove ada, create-and-assign baru). Kabel through / api / material / tag / * proxies + materialsTagsApi. Juga menambahkan Visibility (access-level) kontrol ke laci menggunakan aksesor- level ujung yang ada.
· MediaService
MaterialTagController - tag CRUD + assign / unassign + assignment map
/ api / media / material / tag: daftar / create / delete tag, GET / tugas (org- wide imgId noptagId peta area kerja bergabung sisi-klik), POST / assign + / unassign dengan pemeriksaan kepemilikan org-.
· kamo-shared-library
MaterialTag + assignity / repo (org-scoped tag)
Rata, memotong sumbu tag di atas folder untuk bahan pemasaran. Tabel MATERIAL _ TAGS dan MATERIAL _ TAG _ ASSIGNMENTS (dibuat melalui CRDB DDL yang ditargetkan; KI auto- scan pada run berikutnya).
· kamo-internal
Mengelola link publik UI (P1) - buat / expiry / revoke / view-count
Laci detail memperoleh panel 'Link Publik' (ShareLinkManager): buat link dapat bertahan dengan sebuah nama opsional dan kadaluwarsa (1h / 1d / 7d / 30d / never), salin itu, lihat pemandangannya menghitung, dan batalkan. Dibacked oleh baru MedidiaService registry melalui / api / material / link proxies. The satu-shot link cepat-salin tetap untuk sharing sosial / email cepat.
· MediaService
Mengelola titik akhir sambungan-publik (buat / daftar / revoke) + melayani yang dilacak
Tambahkan POST / GET / API / media / material / links dan DELETE / links / {id} didukung oleh MaterialShareLink, dan menyelesaikan token yang dikelola di GET publik pertama (pemeriksaan dicabut / kadaluarsa dan menabrak viewCount) sebelum mundur ke verifikasi HMAC warisan. token opaque acak, org- scoped pemeriksaan kepemilikan, TTL dijepit ke < = 1y.
· kamo-shared-library
Entitas registri MaterialShareLink + repo (dikelola / dilacak link publik)
Backs repocable, exporting, view- dihitung link publik untuk bahan pemasaran - terus sehingga link dapat didaftarkan, dicabut, dan dihitung (vs. status HMAC satu-shot token). Auto- dipindai oleh KI (@ EntityScan com.kamo) dan MediaService; membutuhkan sebuah KI menjalankan untuk membuat Meja MATERIAL _ SHARE _ LINKS.
· kamo-internal
Tambah menu konteks klik / long-press right- tilikan baris
Selesaikan menu action daftar di kedua mode tampilan. Baris percakapan sekarang terbuka menu bersama yang sama pada kanan-klik dan sentuh tekan panjang dengan aksi tingkat-thread: Balas / Balas Semua / Maju (beroperasi pada pesan terakhir thread, diambil pada permintaan dan komposisi dari kotak surat aktif), Laporkan Spam / Not Spam dan Hapus (diterapkan di seluruh thread), Mark membaca, dan Bintang / Unstar.

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