Selesaikan subdomain- penyewa org ke folder MinIO sendiri
getTheme Path () adalah mengurangi nama host ke apex + tld untuk kedua tema host dan folder ember, sehingga subdomain penyewa seperti gnosia.demo.kamocrm.com me...
Route NavTop picker through / me / language
Picker disebut PUT anggota generik, yang SystemUserGuard 403s untuk pengguna Sistem ditandatangani kedalam sub-org. Tangkapan diam-diam login, sehingga kamo- lo...
Tambah / saya / titik akhir bahasa yang bypass SystemUserGuard
Picker bahasa NavTop tidak melakukan apa-apa untuk Pengguna Sistem ditandatangani ke sub-org: PUT * * * * * * * * * * * * * * * * * * * menjalankan SystemUserGu...
Selesaikan subdomain- penyewa org ke folder MinIO sendiri
getThemePath () adalah mengurangi nama host ke apex + tld (mainDomain.tld) untuk kedua host bertema dan folder ember. Untuk penyewa subdomain seperti gnosia.dem...
Berhenti mengklik warna gelap-varian masukan dalam ModernColors Group
Warna baris picker memiliki hardcode 280px wrapper dalam 1 fr 1 fr dengan overflow: tersembunyi, sehingga input dipotong pada kolom-kolom sempit. Gunakan fleks:...
Perlakukan stub berlangganan dilemparkan sebagai no- langganan, bukan error
The legacy getreentSubscription stub throw by design so callers fall kembali ke jalur yang terbuka. StatsManager telah melewati lemparan sebagai "Tidak dapat me...
Kembalikan meter kosong, bukan null dari getreentPenggunaan
StatsManager diberikan < UageMeters menggunakan = {null} > ketika potongan warisan diselesaikan untuk null, crashing pada usage.meters. Kembali {meter: []} sehi...
Gate My Account slide-out section on CONFIGURE _ SYSTEM
Sembunyikan menu "Akun saya" dari anggota yang kurang CONFIGURE _ SISTEM jadi mereka tidak melihat link (Stats & Costs, Apps & Features, Branch Types, Stream Au...
Pemilik auto- route childorg ke org diijinkan mereka
Ketika / pengaturan / akun dimuat bagi pengguna yang kurang CONFIGURE _ SISTEM pada org saat ini, perilaku sebelumnya adalah redirect diam ke / pengaturan - a d...
Gunakan penuh FQDN, bukan eTLD + 1, ketika mengambil org berdasarkan domain
registrabble DomainFromAlias strip subdomain multi- label (mis. "gnosia.demo.kamocrm.com") ke eTLD + 1 ("kamocrm.com"). Itu halus untuk API base / login host / ...
Pertahankan FQDN penuh untuk subdomains lebih dalam dari dua label
alile _ by _ root () hanya mengekstrak label pertama dan dua terakhir label dari setiap Nama host Traefik-log. Untuk kasus tingkat dua umum (login.b11capial.com...
Jangan pernah gerbang Kamo- dimiliki subdomains pada kepemilikan TXT
Orgs anak yang memilih web alias Kamo (misalnya gnosoa.demo.kamocrm.com) mendapatkan "TXT record ditemukan tetapi kode verifikasi tidak cocok" dalam pengaturan ...
Jangan tampilkan overlay pemuatan global untuk bentuk-bentuk client- tertangani
Interceptor pengiriman pendengar Navigasi ini diperlakukan bentuk apapun yang form.action adalah truthy dan metode = mendapatkan sebagai navigasi, dan disebut s...
Grant top-level org emberhak lintas -org hapus / perbarui akses
deleteDomain dan updateDomain sebelumnya ditolak platform admins beroperasi pada domain anak-org karena mereka memeriksa adalah UserOwnerOfOrg terhadap target o...
Ijinkan penghapusan per-org * .kamocrm.com subdomains
EndsWith (. "kamocrm.com") penjaga memblokir setiap demo org dari menukar platform subdomain (misalnya gmoia.demo.kamocrm.com) untuk domain gubahan. Akar platfo...
Advertical public IP baru 47.181.8.83 untuk media eksternal
JVB-k1m1 adalah iklan 75.83.113.11 dan cotum adalah iklan node 's LAN IP via status.hostIP - keduanya pecah eksternal WebRTC media sekarang bahwa WAN publik ada...
Guard admin- esensial hak + re-seed peran pada pengubahan template
HIGH: * * * * * * * * * * * * * * * sekarang menolak untuk bertahan pada NUKE atau FORCE _ NUKE pengaturan pada salah satu ADMINISTATOR template merupakan hak-h...
Propagate child- org- pencipta status admin ke keanggotaan parent-org
Ketika pengguna membuat anak org mereka menjadi pemiliknya + admin (via * * * * * * * * * * * * * * * Keanggotaan parent.org mereka, Namun, apa pun itu sebelumn...
Lipat bilah alat dan shrink search / date sehingga New Event tetap on-page
Bilah alat yang dikemas terlalu banyak konten fixed- lebar ke dalam sebuah bungkus tidak-tunggal runcing baris; dengan daerah utama induk diatur untuk overflow:...
Baca * * * dari master setelah sesi menyegarkan untuk menghindari replika lag
Perbaikan sebelumnya memiliki / api / user-info call / api / secure / section / refresh sebelum membaca Redis, tapi pembacaan melalui readKsemJsonFromRedisWittR...
Lacak tab dengan nama + refresh sesi sebelum membaca user- info
Dua bug navigasi terkait yang kedua berisi sebagai "tab yang salah dibuka": 1. SettingsView dilacak tab aktif oleh * indeks *. anak-anak Array dapat recopose d...
Ganti heredoc dengan pengelompokan echo sehingga YAML literal blok parses
The / etc / odbc.ini tubuh heredoc duduk di kolom 1, yang cacat keluar dari sekitarnya startup.sh: 134; literal- blok skalar dan patah 'kubectl apply' Dari Conf...
Ikuti remounts rclone melalui propagasi mount HostToContainer
Tanpa mempropagandakan budak pod menangkap FUSE kait sekali di awal wadah; jika rclone-mount. layanan dijalankan ulang pada host, pod terus menunjuk pada koneks...
Tab Docs gerbang pada VIEW _ DOCUMENTS / Manage _ DOCS _ SETTINGS
Cermin gerbang tab Email + Telepon. Seorang anggota tanpa VIEW _ DOCUMENTS (dasar Akses tingkat-tinggi) dan tanpa Manvage _ DOCS _ SETTINGS (admin) tidak lagi m...
Email gerbang + Tab telepon pada hak, gerbang VOIP konfigurasi sunting, sesi periodik penyegaran
Tambahkan yang hilang right- gating jadi sebuah dasar Anggota tanpa AKSES _ MAIL / AKSES _ VOIP tidak dapat lagi melihat tab Surel & Mailbox atau Pengaturan Tel...
Align Tipe / Nama / ruas TTL dengan memindahkan petunjuk TTL ke tooltip
Field TTL diberikan nya 'menggunakan 1 jam jika registrar Anda menunjukkan petunjuk dropdown 'sebagai sebuah paragraf di bawah masukan. Kolom yang berakhir lebi...
Kartu SSL berhenti mengklaim catatan diverifikasi sebelum mereka
Kartu SSL memiliki dua keadaan (memasang / lengkap) sehingga "memasang" copy ("Semua catatan yang diperlukan diverifikasi, kami memasang sertifikat sekarang ") ...
Hapus jeda header, ungate subdomains, drop registrar picker
- Pindahkan DnsProvisioning Panel dalam DnsSetupStudio sehingga kosong px: 4 pt: 3 wrapper di sekitarnya (yang menciptakan sebuah band dari whitespace di atas p...
Daratan pada induk / setup / dns setelah org membuat
Penyihir sebelumnya mengarahkan Pencipta ke * * * * * * * * * * * * * * * tepat setelah POST / api / keamanan / org kembali. Domain org baru tidak memiliki DNS ...
Drop CountryTypeConverter dari daerah EmbAddress.country
Pengubah menulis nama enum (mis. "UNITED _ STATES") sebagai String, tetapi setiap tabel embedding EmbAddress (orgs, pengguna, anggota, user _ address, account _...
Hanya tampilkan frase benih Recovery Akun untuk di bawah -13
Mengapa: 13 + pengguna telah menyediakan email, telepon, dan pertanyaan keamanan sebagai metode pemulihan, membuat benih frase langkah berlebihan bagi mereka. U...
Skala ke 2 replika untuk menyerap sinkronisasi + lalu lintas runtime
Sebuah replika tunggal adalah batas untuk alur kerja sinkronisasi kamus: setiap pekerja gunicorn menangani satu permintaan kemudian auto- mulai (~ 5-10 s jendel...
Bump LibreTranslate per-call timeout to 90an; keep single- translate backwarder-compat
Dua follow- up untuk retry / failedKeys perubahan: Waktu permintaan per- panggilan adalah 30-an. Produksi memiliki penelepon runtime (obrolan, pemberitahuan, d...
Coba lagi kesalahan transien dan kunci gagal permukaan (jangan passthrough palsu)
Dua mode kegagalan tidak dapat dibedakan dalam respon, sehingga script tidak bisa membedakan mereka dan terus "menerjemahkan" kunci yang sama dengan bahasa Ingg...
Alias zh - > zh-Hans so en- > zh sebenarnya diterjemahkan
LibreTranslate 's / bahasa titik akhir mengiklankan Cina di bawah region-spesifik kode "zh-Hans" dan "zh-hant" (tidak pernah telanjang "zh"), meskipun POST / me...
Pertahankan nama berkas asli dan jenis isi pada unduh lampiran
* * * * * * * * * * * * * * * * * titik akhir (kedua pribadi dan shared-mailbox controller) adalah memancarkan Kontent-Disposition: lampiran tanpa parameter nam...
Gambar inline rusak, pengunduhan lampiran, dan berkedip panel view-@@
- Strip < img > dengan cad: src dalam sanitzer email sehingga gambar tertanam tidak render sebagai ikon broken-image berkedip, dan menyembunyikan gambar yang ga...
Kandar target yang didukung dari / bahasa, bukan daftar basi
The hardcode SUPPORTED _ TARGETS diklaim sw / ta / et. didukung, tapi tidak ada paket argos publik ada untuk mereka, sehingga setiap en- > sw / en- > ta Permint...
Drop tidak dikenal --workers arg menyebabkan crashloop
Libretranslate CLI tidak menerima --workers, hanya gunicorn proses di dalamnya tidak. Passing menyebabkan pod gagal argparse pada Boot dan CrashLoopBackOff (138...
Publikasikan acara NAS CREATE setelah transaksi berkomitmen untuk memperbaiki perlombaan lampiran gambar
Pesan NATS diterbitkan di dalam tubuh @ Transaksional, yang berarti penerima dapat menerima acara CREATE dan meminta gambar melalui / imaging / proxy / {objImgI...
Serialize attachments in WS relay and message history; allow attachment-only sends
Three bugs fixed: 1. ChatSessionSubscriptionManager was building the STOMP messageMap manually and omitting attachments, sourceLanguageId, readMemberId, msg...
Add attachments and event fields to ChatMessageDto; ignore unknown fields
ChatMessageDto was missing `attachments`, `readMemberId`, `msgIdLastViewed`, `dateLastViewed`, `addedMemberId`, `objImgId`, `transitMemberId`, and `isJoin` fiel...
Fix NPE in getChatSessions from Map.of() rejecting null nextcoder
java.util.Map.of() throws NullPointerException when nextcoder is null (no more pages). Replace with HashMap that accepts null values. Also wrap entire handler i...
Defects C/D/E — title display name, toolbar layout, header lift
Defect C: Add GET proxy for /sessions/{guid}/members so ChatBox.loadMembers() can populate the SessionMember.name field. ChatTool already uses members[0].name f...
Fix upload 500 (missing EmbRecordState) and empty chats tab (Timestamp cast)
Defect A: ChatAttachmentService.upload omitted **************** causing a NOT NULL violation on imgs.is_active. Added the default recordState. Also hardened Cha...
Prefer usernameAlias over User.name in memberDisplayName
Switches display name priority to: Member.usernameAlias → User.name → User.alias → User.username. Also includes the paged query dispatch fix from the previous c...
Show upload error toast in Composer when attachments fail
Catches errors thrown by uploadAll() and renders an MUI Alert above the input row. Root cause of Defect 4 was the missing MinIO bucket (imaging-chat-attachments...
Empty Chats tab — frontend already expects {rows} paged shape (no change needed)
The ChatsList component already reads data.rows. Backend fix (shared-lib + MediaService) is the root cause: HAVING CAST(null AS TIMESTAMP) IS NULL did not work ...
Use split First/After queries for chat sessions paged endpoint
Addresses empty Chats tab by dispatching to ****************
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.