Tambahkan logging ke uploadbackground titik akhir
Log org / indeks, info berkas, userId, keputusan auth, dan pementasan MinIO kunci untuk melacak mengapa upload latar belakang tidak muncul dalam ember pementasa...
Tambahkan log ke rute proksi upload- latar belakang
Log org / indeks, nama / ukuran / tipe berkas, dan status respon upstream untuk mendiagnosa mengapa upload latar belakang tidak mencapai APIService.
Tambahkan kolom Lokasi ke antrean tiket
Baca * * * * * * * * * * * * * * * Langsung dari SupportTicketDTO (sekarang snapshot pada entitas tiket di waktu penciptaan - tidak ada perjalanan tambahan). Fl...
Simpan geo pada tiket dalam pembuatan, drop GeoLite dibaca
Sekarang menangkap tamu kita. sekali (via GeoLookupService) dan mempertahankan IP / country / city / subdivement on The SupportTicket sendiri. SupportTicketSer...
Pengunjung Snapshot geo pada entitas tiket
Tambahkan VISITOR _ IP _ ADDRESS, VISITOR _ CODE, VISIITOR _ COME _ COME, VISITOR _ CITY, VISITOR _ SUBDIVISI kolom. Ditangkap pada pembuatan tiket sehingga daf...
Kunci- muat pengunjung dan lewati pencarian GeoLite dalam daftar
Endpoint daftar dukungan / tiket berjalan, setiap halaman 20 baris: - 20 * * * * * * * * * * * * * * * panggilan (N + 1) - 20 panggilan ke GeoLookup Service.loo...
Tambahkan findBySessionGuidIn untuk memuat massal
Digunakan oleh support- daftar titik akhir untuk mengambil semua pengunjung untuk halaman dalam satu query daripada N terpisah panggilan findBySesssionGuid.
Berikan folder ke tombol coba ulang loadThread
loadThread mengambil (threadId, folder); rrror- state coba saja melewati threadId, melanggar kamo- internal build. Cocokkan panggilan ke tanda tangan.
Bangun ulang untuk mengambil Anggota JsonIdentity Info fix dari kamo- shared-library
kamo- shared-library b57d156 fixes @ JsonIdentityInfo (properti = "uniqueId") Pada Anggota "id", menyelesaikan 400 kesalahan pada PUT / api / Security / org / {...
JsonIdentity benar Properti info dari 'uniqueId' ke 'id'
Entitas anggota dideklarasikan @ JsonIdentityInfo (properti = "uniqueId") tapi ruas kunci primer sebenarnya bernama 'id'. Jackson melemparkan "tidak dapat menem...
Tambah / ws / public -chat-native plain WebSocket titik akhir bersama SockJS
Register sebuah titik akhir StoMP kedua tanpa SockJS di / ws / public-chat-native jadi bahwa antarmuka dapat terhubung dengan asli WebSocket (brokerURL) tanpa m...
Hapus SSR guard menyebabkan dehidrasi tidak cocok; drop SockJS untuk web Socket asli
Hero.tsx: hapus pengecekan jendela di sekitar ParticleField - ParticleField sudah memiliki ssr: salah sehingga penjaga dihasilkan server / pohon klien tidak coc...
Per- tiket unread badge + 'pesan baru saja' filter
- Daftar tiket menunjukkan lencana chat- gelembung dengan jumlah yang tidak terbaca di sebelah tiket # kapanpun sesi memiliki pesan yang lebih baru dari agen pe...
Siarkan jumlah yang tak terbaca ke agen pada pesan pengunjung
Setelah pengunjung mengirim pesan dukungan, tekan tak terbaca terakhir payload ke * * * * * * * * * * * * * sehingga tiket- agen Lencana dan pembaruan counter n...
Termasuk sesi SUPPORT _ TIKET dalam permintaan keanggotaan yang belum terbaca
find ChatChatMemberships ByMberId sekarang kembali keanggotaan untuk baik CHAT dan Tipe sesi SUPPORT _ TIKET, jadi tipe anggota perread- yang ada infrastruktur ...
Bersihkan indikator yang belum dibaca ketika percakapan dibuka
ThreadDetailView kini mengirim surel: folder- berubah setelah MarkConversationRead sukses sehingga MailButton mengembalikan jumlah lencana inbox navtop. Tampila...
Move CORS to Traefik via kamo-middlewares, remove in-app CorsFilter
The CorsFilter @Bean in the Spring app was silently not applying headers after WebConfig.java was removed. CORS is now handled entirely at the Traefik layer by ...
Use /public/{mainDomain}-{tld} path matching actual MinIO bucket layout
The getThemePath() was generating /domain/{tld}/{split}/kamosite paths that don't exist in MinIO — theme files live in the public bucket under kamocrm-com/, bad...
Break rantai min- w-0 untuk memuat gulungan email dalam kolom tubuh saja
Tambahkan min-w-0 ke luar kontainer dan isi utama flex div sehingga flex anak-anak tidak dapat memperluas ke email lebar min-content, yang menyebabkan kontes-le...
Naikkan penyedia di atas Pengatur Alat
Akar penyebab yang sama dengan Hoist ChatWebSocketSocketprovider: Pasokan TicketWindow panggilan * * * * * * * * * * * * useUnread () .markAsRead (), tapi kedua...
Tambah penekanan Peringatan Hidration dan perbaiki gambar placeholder rusak
appressHydrationWarning di < html > mencegah Galat Reasi # 418 disebabkan oleh peramban ekstensi (mis. diterjemahkan, mode gelap) bermutasi atribut html antara ...
Ijinkan / domain / path awalan pada tema IngressRoute untuk CORS
Konfig tema di theme.kamocrm.com / domain /... tidak cocok dengan aturan rute yang ada (hanya / publik / dan / internal / diijinkan), jadi Traefik mengembalikan...
Hapus duplikasi CorsFilter dan strip header upstream CORS dalam gateway
WebConfig.java didefinisikan kedua CorsFilter kacang bersaing dengan CorsConfig. java kacang, mempertaruhkan duplikat header menulis. Dihapus sehingga hanya sat...
Hapus duplikasi CorsFilter bean yang menyebabkan double Access- Control- Allow- Origin header
The eksplisit CorsFilter kacang menyebabkan filter CORS kedua bersama Spring Pembangunan keamanan dalam dukungan CORS (yang menggunakan CorsConfigurationSource)...
Hapus laporan debug console.log dan tambahkan rute yang hilang
Hapus semua penelusuran sementara yang ditambahkan selama pelacakan WebSocket dari ChatBox, TicketChat, MenmberItem, ChatTool, dan Use ChatChWebSocket; tambahka...
Mencegah header pesan dari memperluas kolom pada alamat panjang
Kepala kiri anak fleks tidak memiliki email yang tidak bisa dipecahkan alamat dalam From / To / Cc memaksa lebar min- konten untuk tumbuh, seret tajuk (dan tata...
Hoist ChatWebSocketProvider di atas ToolProviders
ToolDock (dan perangkat jendelanya seperti SupportTicketWindow £TicketChat) adalah dipasang di dalam ToolProviders, yang terletak ABOVE PresenceWrapper dalam po...
Jatuhkan Shadow DOM dalam perender email sehingga overflow-x-auto kebakaran
Shadow DOM adalah penyebab akar. Isi surel lebar (tabel fixed- lebar) di dalam pohon bayangan melukis melewati host tanpa berkontribusi kotak tata letak host, s...
Align Path impor ChatWebSocketContext yang cocok dengan penyedia
TicketChat dan ChatNotificationListener diimpor konteks via '@ / app / contexts /...' alias ketika PresenceWrapper (penyedia) impor itu melalui jalur relatif '....
Sementara console.log untuk melacak jalur berlangganan TicketChat
Tambahkan log konsol di setiap tahap baris pipa berlangganan (efek api, penjaga lulus, subscribe () panggilan, atatSessSubscription, klien. Berlangganan, / app ...
Paksa penahanan host bayangan dengan gaya inline + berisi: tata letak
Kelas berdasarkan overflow-x-auto pada host bayangan tidak dipercaya menang terhadap bayangan ': host {all: initial}' reset, so wide email isi (tabel fixed- wid...
Scroll isi email lebar di dalam bayangan DOM, bukan di luar
Upaya sebelumnya untuk menambahkan overflow-x-auto ke moyang DOM ringan tidak dapat menangkap isi email lebar karena visual pohon bayangan cat overflow tidak be...
Gunakan getHasAttachments () untuk mencocokkan tipe pembungkus Boolean
* * * * * * * * * * * * * adalah Boolean (wrapper), begitu Lombok menghasilkan getHasAttachments () bukan isHasAttachments (). Yang terakhir saja ada untuk bool...
Pemindaian repositori Expand JPA untuk memasukkan paket perdagangan
Kamo- shared- perpustakaan baru membawa dalam * * * * * * * * * * * * * * * * * yang membutuhkan * * * * * * * * * * * * * * * (dalam com.kamo.z.shared.commerce...
Kembalikan impor HashMap dalam ChatWebSocketController
Reaktor sebelumnya menghapus impor HashMap tapi handleTyping metode masih membangun sebuah HashMap untuk muatan peristiwa mengetik, menyebabkan Forgejo build un...
Tambahkan min-w-0 ke isi email div sehingga overflow-x-auto kebakaran
Tanpa min-w-0, anak flex-col baku lebar: otomatis menyelesaikan ke min-content, membiarkan tabel email lebar memperluas div melewati kolom lebar. Overflow-x-ter...
Hapus duplikasi connectStomp panggilan dalam sendMessage
Ketika pesan pertama menciptakan sesi baru, alat peraga pemutakhiran onSessionmade yang memicu use Effect untuk memanggil connectStomp. Panggilan pesan masuk it...
Proaktif membuat konsumen NAS pada pembuatan sesi untuk mencegah hilangnya pesan
Sebelumnya NATS JetStream mendorong konsumen hanya dibuat ketika klien STOMP dikirim / app / chat / berlangganan. Dengan DeliverPolicy. Baru, ada pesan yang dit...
Tutup jeda reconnect menyebabkan pesan real-time jatuh
Hapus 'tersambung' dari kotak penggunaan efek langganan dalam TicketChat dan ChatBox. Sebelumnya, setiap reconnect WebSocket memicu efek membersihkan yang diseb...
Ijinkan pengguna sistem untuk mengelola branding org dan memperbaiki logo auth
- Tambahkan sistem pengguna bypass sebagai penjaga pertama dalam canManageOrganic Branding sehingga platform pengguna sistem memiliki percabangan penuh kontrol ...
Berisi overflow horisontal dalam panel tilikan email ke kolom 3
- Tambahkan overflow-x-tersembunyi ke MessageBrowser luar kontainer sebagai batas keras - Tambahkan overflow-x-hidden ke kolom 3 pembungkus dan overflow-x-auto ...
Kegagalan Produksi dengan penjara PJSIP dan keadaan persisten
- Tambahkan fail2ban- configmap.yaml dengan [asterisk] dan [freepbx-web] penjara, eskalasi larangan peningkatan (1h Aver24h 130d), dungu LAN, dan custom asteris...
Ganti Coqui TTS dengan Piper TTS (en _ US-norman- medium)
Model Coqui VCTK tidak memiliki speaker bernama - menggantikan dengan Piper TTS yang memiliki suara norman [sedang] tepat. biner Piper (~ 3 MB) dan model (~ 60 ...
Reset stale hasAttachments on sync and accumulate correctly
- Reset has_attachments=false at start of bulk sync so stale true values from old false-positive MIME detection are cleared before re-indexing - Accumulate ha...
Add resetHasAttachmentsForFolder query to ConversationRepository
Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.
Integrate Coqui TTS with norman voice (VCTK p267)
- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...
Pre-populasi DARI pada reply / forward dan perbaiki kirim dari Alamat
- DraftMessage sekarang membawa dari Alamat sehingga mengalir dari bukaan Pesan Baru melalui ke komposer - MessageBrowser menyimpan alamat surel aktif (termasuk...
Dukungan dari override Alamat saat mengirim
Tambahkan FromAddressRequest ke EmailSendRequest sehingga antarmuka dapat menentukan alamat alias / shared / mailbox untuk dikirim. SmtpOnlyProvider sekarang me...
Add LAN DNS pod for split-DNS on k1m1
Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...
Tambahkan lokal _ net untuk split- DNS / LAN perbaikan klien RTP
Telepon pada LAN yang sama dengan koneksi k1m1 via split DNS (domain resolve ke 192.168.4.22 internal). Tanpa lokal _ net, Asterisk masih mengiklankan domain ek...
Seperti apa yang Anda lihat pengiriman?
Semua itu tiba di ruang kerjamu sendiri. Mulailah dengan rencana gratis dan baca halaman ini lagi dalam sebulan.
