Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· kamo-internal
Tab Integrasi Percakapan Web - daftar, buat, snippet (BFF + UI)
Inti tahap 2 dari tab pengaturan integrasi Web Chat: rute BFF proxy ke Phase- 1a MediaService CRUD, klien diketik, dan / settings / features / chat tab dimana org daftar integrations, membuat satu (nama + yang diperlukan asal-usul situs web + mode AI / Dukungan), dan mendapat mentah kunci situs + snippet yang dapat digelapkan sekali. Mendesain keteraturan dan kesiapan checklist adalah fase selanjutnya.
· kamo-register
Kamo- register menghargai software auth logo + nama
- DynamicMetaLoader: baca identitas perangkat lunak + pemilih auth dari konfigurasi. json, pecahkan judul tab, mempertahankan status logo / nama auth ke sesionStorage - brand.ts + Theme Logo: register logos auto- ikuti identitas logo (reaktif) - useAutname: teks nama register (landing + flow) mengikuti identitas copy- name, reaktif pada muatan konfigurasi tema; kembali ke perusahaan
· kamo-login
Kamo-login menghargai software auth logo + judul tab
- DynamicMetaLoader: baca identitas perangkat lunak + pemilih auth dari config.json, atur tab judul dari nama terselesaikan (writNameBrandSource), tetap mempertahankan keadaan logo ke sesionStorage - brand.ts + Theme Logo: log masuk otomatis -ikuti identitas logo (perusahaan / perangkat lunak), resolved pada muatan konfigurasi tema; tidak ada perubahan alamat yang dibutuhkan
· kamo-internal
Identitas perangkat lunak LabelManager UI + judul tab internal
- Info Perusahaan: nama / nama pendek + login / register nama + pemilih judul tab-@@ - Branding: software full / simple logo upload, override toggles, and per- permukaan pemilih identitas (watermark, navpri, login / register logo) - Kekuatan - permukaan hukum dikomunikasikan sebagai perusahaan always (dokumen / email / faktur / dsb.) - tata letak: judul tab peramban internal menyelesaikan melalui PromeralTabBrandSource
· kamo-internal
3-stage org onboarding guide (buat SIL finish DNS gden enter)
Menjangkitkan pahlawan pertama- org ke dalam satu panggung - sadar bimbingan panel keyed pada owned-org jumlah anggota + DNS status (dari / api / keamanan / org / my-network): buat - memiliki tidak ada anak org plust meluncurkan label putih pertama org (/ network / create) dns - memiliki 1, DNS tidak diverifikasi domain setup defix (/ setup / dns? orgId =..) enter - memiliki 1, DNS complete akhiri masukan itu (enter- sebagai OTK masukan internal. < domain >) Setelah mereka memiliki org kedua, tidak ada panel menunjukkan - mereka tahu tali. DNS-pending mirror the network page rule exactly (custom domain & domainSetupcomplete = = false; a * .kamocrm.com org tidak membutuhkan DNS). Setiap tahap mendapatkan keluarga aksen sendiri (people / work / crm), icon and copy; CTA adalah link untuk membuat / dns dan sebuah async masukkan aksi untuk tahap siap. Gagal aman (tidak ada panel) pada setiap kesalahan pengambilan.
· kamo-internal
Perusahaan dual / software resolver + pengiriman + konsumsi
- Organisasi. - brand.ts: * * * * * * * * * * * * * * * * * (+ vitest, 8 kasus) - ¶ ThemeLogo: logoSoftware / logoFullSoftware variants ¶ - NavPri: logo navpri + teks ikuti pemilih Internal Software Logo - BackgroundWatermark + Backdrop: watermark menghormati identitas perangkat lunak (kedua jalur)
· SecurityService
Logo perangkat lunak mengunggah tipe + config.json memanggang
- uploadLogo: explisit object- key switch * * * * * * * * * * * * dengan menolak baku sehingga upload perangkat lunak tidak pernah dapat clobber logo.svg perusahaan - CopyFolder: simpan logo perangkat lunak yang diunggah pada template salin ulang - config.json: Membuat identitas perangkat lunak + mest- selector permukaan untuk login / register - test: UploadLogoObjectKeyTest, buildConfigJson kasus perangkat lunak
· kamo-shared-library
Tambahkan perangkat lunak white- label branding kolom ke Organisasi
· kamo-shared-library
Persist software branding field via patchOrganization whitlist
· kamo-internal
First-org CTA hero for members on the platform org
Tampilkan seorang pahlawan onboarding di bagian atas rumah launchpad mengundang Anggota platform KamoCRM (bukan anggota tim) yang belum membuat anak org untuk spin up mereka organisasi white- label pertama. Seorang terkemuka Tombol CTA dan 'klik di sini' menghubungkan kedua rute ke / jaringan / buat, dan titik salinan ke nav 'My {branches}' di atas. Gated pada prosenInfo.memberType = = MEMBER + organzation.isTopLevel; tetap tersembunyi kecuali / api / keamanan / org / my-jaringan menegaskan mereka tidak memiliki anak org, dan gagal aman (tersembunyi) pada setiap kesalahan pengambilan. Mengikuti Instrumen Bahasa desain panel (aksen orang, kglass, operator-label, rumah ealing, reduced- motion- gated). String di bawah rumah. Org pertama.
· VOIPService
Titik akhir kredensial TURN-REST bagi ponsel softphone
GET / api / voip / turn / credentials mint ephemeral cotrum creds (HMAC-SHA1 ganti "< expiry >: < memberId >" dengan statistik bersama-rahasia) begitu asli / seluler WebRTC dapat menyampaikan melalui 47.181.8.84: 3478. Auth melalui X- * * * yang sama Token SIP endpoint menggunakan; kembali dikonfigurasi: false (STUN-only) ketika rahasia tidak ada. Wires KAMO _ TURN _ SECRET dari yang ada * * * (opsional).
· SecurityService
Expose per-org primaryColor + logo URL pada / my- network
Tiap baris org kini memuat primaryColor (Organisasi .colors.color Pri, '#' -prefixed cocok dengan konfigurasi .json) dan turunan logoUrl / logoSimpleUrl (tema. < domain > / public / logo dan warna perbatasan per- org hex-head.
· MediaService
ID integrasi Snapshot web- chat pada pengunjung dukungan + tiket
Menyelesaikan Integrasi WebChatChingby creatingKeyHash (disaring, konsisten dengan bootstrap () / AI- prompt resolusi) sekali dalam create Supportment dan prangko id nya ke baik PublicChatVisitor dan SupportTicket untuk per- situs web atjects. Null / kosong keyHash atau tidak ada integrasi yang cocok meninggalkan kolom kosong.
· AIService
Per- integrasi publik prompt AI + sesi atjects
Upgrade the public- chat system- prompt waterfall from per-org ke per- integrasi: PublicAChatController sekarang membaca X- Public-Chat-Key- Hash header (nubles) diteruskan oleh APIService dan melewati itu ke * * * * * * * * * * * * * * yang menyelesaikan WebChatIntegration oleh hash dan lebih suka aistemPrompt atas Pengaturan AiOrgan baku, mundur ke prompt generik. The resolved Aictation juga dicap dengan webChatIntegrationId untuk stabil atclaits yang bertahan dari rotasi kunci. Mengekstrak air terjun menjadi statis, unit-diuji resolvePrompt pembantu (integration - menang / org- fallback / generic-fallback / kosong penanganan).
· APIService
GET / APi / public-chat / bootstrap gateway
Tambahkan titik akhir bootstrap yang mereses pipeline proxyWithAuth yang sudah ada (kunci validasi + opt-in asal + PUBLIC _ CHAT scope + rate- limit + X- Public- Chat-Key- Hash) dan proxy ke titik akhir bootstrap MediaService.
· MediaService
Public- chat bootstrap config resolver
Menambahkan sebuah GET internal * * * * * * * * * * * * * * * * * yang menyelesaikan WebChatIntegrasi oleh X- Public- Chat- Key- Hash dan kembali diselesaikan konfigurasi / perilaku (default-filled via WebChatDefaultConfig.merge sehingga kunci dengan tidak ada baris integrasi masih menghasilkan seperti widget saat ini). Jatuh kembali ke Aktif PublicChatApiKey org ketika tidak ada integrasi ada; 404 ketika hash kunci tidak menyelesaikan sama sekali.
· MediaService
WebChatIntegration CRUD (mints key + integrasi, org- scoped)
Organ-menghadap API manajemen Phase-2 tab pengaturan web-chat. Hidup buat, cetak yang mendasari PublicChatApiKey (pendekatan tombol -gen sama Sebagai PublicChatKeyController) di samping baris WebChatIntegration dan mengembalikan kunci mentah sekali. daftar / get / update / delete adalah kepemilikan org- pemeriksaan; update busts (Task-5) bootstrap cache ketika parset Config atau diaktifkan perubahan.
· kamo-shared-library
Tambahkan WEB _ CHAT _ INTEGRATION _ ID kolom atcommits ke pengunjung / tiket / ai- sesi
· kamo-shared-library
Entitas Integrasi Web + repo + DTO + konfigurasi desain baku
· kamo-internal
Tambahkan "Access Copilot Mobile App" titik masukan di rumah + NavPri
Kedua permukaan mengirimkan acara 'open- interaction- center' bahwa NavTop mendengarkan untuk membuka Interaksi Center pada tab Setup Mobile App. Rumah menunjukkan label pil di bawah kontrol wallpaper; NavPri menunjukkan ikon logo di bawah pil uji coba (label ketika diperluas, tooltip ketika runtuh). Keduanya dibagi oleh LOW _ MOBILE _ AKSES right.
· kamo-internal
Sandi-gerbang QR, tab tunggal-baris, logo-kiri header, kode 10 -min
- Anggota harus memasukkan kembali kata sandi mereka (server- diverifikasi via / api / mobile - accesses -otk, yang menanamkan OTK hanya pada keberhasilan) sebelum QR terungkap - mencegah seseorang di already-signed- dalam komputer dari meraih itu. - QR / OTK sekarang tinggal 10 menit (600s); hitung mundur lalu kunci. - Tab label dipaksa ke satu baris; logo pindah kiri dari judul untuk menyimpan ruang vertikal; menghilangkan pil 'Configuring for'.
· SecurityService
POST * * * * * * * * * * * * * * - gerbang Mobile Copilot QR
Verifikasi kata sandi pemanggil sendiri (sandi sandi Encoder. pertandingan melawan sesi mereka pengguna) tanpa mengubah apapun. Digunakan oleh mobil--accesses-otk BFF rute sehingga setup QR hanya minted setelah re-mengkonfirmasikan password.
· kamo-internal
Menyetel tab Akses Mobile - QR untuk memasang + auto- konfigurasi Mobile Copilot
Tab ke-3 baru di NavTopanel (digated oleh ALLOW _ MOBILE _ AKSES kanan): Tampilkan sebuah merek Pengkodean QR sebuah link dalam OTK yang pendek (kamocopilot: / / konfigurasi) yang menandatangani anggota pada telepon mereka dan default aplikasi ke org saat ini. Otomatis-menyegarkan OTK sebelum kadaluarsa; tata letak MUI dipoles dengan warna primer org. Tambahkan
· kamo-shared-library
Tambahkan ALLOW _ MOBILE _ AKSES (167) umum tepat untuk Mobile Copilot
Tipe RoleRightType baru (serviceType = null UmumUmum grup) saat menjalankan 'Setup Mobile Akses tab tengah interaksional. RoleRightSyncService backfills it to all roles di restart SecurityService; muncul di bawah Izin Umum di penyunting peran.
· AIService
Prompt publik per-org, human- handoff pada tidak ada penyedia, tutup pesan harian anon
· kamo-shared-library
Tambahkan permintaan hitungan penggunaan anon untuk kuota web-chat publik
· APIService
Verifikasi * * PoW di tepi pada sesi publik membuat (dipaksa ketika payload ada)
· MediaService
Bust APIService cache kunci segera pada public -chat key toggle / delete
· MediaService
Persist membuat hash kunci pada pengunjung public-chat + tiket untuk atclate
· kamo-shared-library
Tambahkan DailyMessageCap ke Pengaturan AiOrganisme untuk kuota obrolan online

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