Switch yang tersedia / tak tersedia ke backend dan memperbaiki kutu kehadiran OFFLINE
- Ubah nama chip yang ditahan / aktif ke Tersedia / tidak tersedia di NavTop - Ambil ketersediaan awal pada kait dan perkuat toggles melalui baru me / avability...
Meningkatkan TTL dari 90-an sampai 300s untuk mencegah OCLINE salah pada pemintalan tab
Tambahkan Tersedia ke respon departemen dan saya / ketersediaan titik akhir
Tulis ulang semua kueri / mutasi GQL terhadap introspeksi skema hidup
Verifikasi setiap nama dan tipe lapangan terhadap skema FreePBX 17 yang sebenarnya. Set penuh koreksi: Query: - fetchAllExtensions: hapus daerah 'voicemail' da...
Lewati Folder yang dipilih ke ThreadDetailView sehingga surel: folder- mengubah kebakaran dengan folder yang valid
konversi. Folder selalu tidak terdefinisi karena Java ConversationEntity memiliki folderIds (teks []) bukan sebuah daerah string folder. Hal ini menyebabkan loa...
Nama ruas GraphQL yang benar untuk fetchAsteriskDetail
FreePBX API kembali "Apakah maksudmu fetchAsteriskDetail?" - ganti nama kesehatan periksa query dan data path yang sesuai.
Tambahkan header XHR / Terima dan respon String parsing ke klien GraphQL
Pola yang sama seperti FreePBXTokenCache: tambahkan X-Requested- Dengan + Terima: aplikasi / json untuk menekan respon redirect HTML FreePBX, dan menukar ketiga...
Selaraskan dropdown kotak-surat ke kotak-surat utama pada load
Dropdown digagalkan ke butir daftar pertama karena memilih kotak-surat yang diinisialisasi tanpa kotak surat, menyebabkan nilai mata uang untuk menyelesaikan 'p...
Naikkan batas ukuran berkas upload ke 500MB
Spring Boot default cap multipart bagian di 1MB, menyebabkan gambar latar belakang upload untuk gagal dengan 500 dalam request.getParts (). Match SecurityServic...
Galat permukaan HTTP sehingga kegagalan upload terlihat
Displaced diam konsole.warn dengan Galat dilemparkan pada status bukan-OK, sehingga pengguna melihat alasan kegagalan sebenarnya (tubuh status + respons) daripa...
Tambahkan tajuk + XHR dan raw-string respon parsing untuk tanda titik akhir
FreePBX kembali teks / html ketika disebut via cluster DNS karena Header host tidak cocok dengan PBX _ HOSTNAME yang dikonfigurasi. Menambahkan Terima: aplikasi...
Drive minimal-tab entri melalui kontrol animasi
Mengaktifkan animasi = {...} ke animasi = {tabControlls} memecah entri animasi: tabControlls tidak memiliki target antrian pada kait, sehingga tombol tetap pada...
Benang scope Oaut2 yang benar bagi API FreePBX
Scope FreePBX adalah identifier tingkat atas: 'gql' (semua GraphQL) dan 'rest' (all REST). Format 'gql: read' berarti GQL untuk sebuah modul bernama 'read', yan...
Siaran tidak terbaca badge + bounce pada pesan agen baru
- Keeps LiveSupportPanel dipasang di luar layar sementara widget diminimalkan (hanya ketika sesi dukungan ada) sehingga tetap langganan StoMP hidup dan onunread...
Tampilkan port 8088 secara langsung pada layanan ClusterIP
Layanan hanya memiliki port 80 £8088 pemetaan. Layanan internal memakai * * * * * * * * * * * * * * * (mis. token API VOIPService permintaan) adalah waktu kelua...
Backend Trust pendingCount, drop client offset
Backend pendingCount kini tidak terbaca-berbasis (dihitung sesi SUPPORT _ TIKET dengan pesan yang lebih baru daripada pemilik yang lastViewed). Ketika agen terb...
Broadcast tertunda jumlah + belum dibaca pada agen baca & pengunjung mengirim
- * * * * * * * * * * * * * * * * sekarang delegasi ke * * * * * * * * * * * * * * * * * sehingga menghitung mencerminkan sesi dengan pesan pengunjung yang belu...
Cacah unread- berbasis + lookup -by-session helper
Tambahkan * * * * * * * * * * * * * * * * * * sehingga navtop Lencana SupportButton dapat menghitung tiket dukungan yang benar-benar perlu perhatian (memiliki p...
Tambahkan fail2ban- config ConfigMap untuk k1m1
Pemindahan referensi kegagalan 2ban- config ConfigMap (jail.local + asterisk- security.conf) tetapi tidak ada, memblokir pod di MountVolume. Penyiapan dan pence...
Bangun ulang untuk menarik kamo- shared- perpustakaan
Meniup * * * * * * * * * * * * * * * * * * * query dan cabang SUPPORT _ TIKET dalam * * * * * * * * * * * * * * *
MarksRead setelah agen mengirim kemajuan yang lama
Pada tiket dukungan, baik pengunjung dan pesan agen disimpan di bawah Anggota Systemm yang sama, jadi permintaan yang belum dibaca adalah memberagnostik dan Sem...
Tiket dukungan membutuhkan jumlah yang tak terbaca anggota agnostik
Pesan pengunjung pada tiket dukungan disimpan di bawah system Anggota yang sama bahwa agen membuktikan sebagai, sehingga sesi CHAT- yang ada tidak dibaca query ...
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...
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.