KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

17,500
Total Changes
5,986
Features
5,284
Fixes
30
Projects
Filter by project
All Projects17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
April 25, 2026
Fixkamo-internal

Drop Shadow DOM în e-mail rander atât de deversare-x-auto focuri

Shadow DOM a fost cauza rădăcină. Conținutul de e-mail larg (tabele fixe) în interiorul copacului umbră pictat trecut gazda fără a contribui la cutia gazdei, as...

kamo·6mo ago
Fixkamo-internal

Aliniază calea de import ChatWebSocketContext pentru furnizorul de potrivire

TicketChat și ChatNotificareAscultătorul a importat contextul prin intermediul "@/app/contexts/......" alias în timp ce PrezenţaWrapper (furnizorul) o importă p...

kamo·6mo ago
Fixkamo-internal

Forta umbra gazda de izolare cu stiluri inline + conține: aspect

Clasa pe baza de supraîncărcare-x-auto pe gazda umbră nu a fost câștigătoare fiabil împotriva umbrei ':host { all: iniţial}' resetat, atât de larg e-mail conţin...

kamo·6mo ago
Fixkamo-internal

Derulați conținut de e-mail larg în interiorul umbra DOM, nu în afara

Încercările anterioare de a adăuga supraîncărcare-x-auto la lumina strămoșilor DOM nu a putut prinde conținut de e-mail larg, deoarece umbra copacului vizual re...

kamo·6mo ago
FixEmailService

Utilizați getAstachments () pentru a se potrivi cu tipul de ambalaj boolean

***************** este un ambalaj Boolean, deci Lombok generează getHasAttachments() not isHasAttachments(). Doar acesta din urmă există pentru boolean primitiv...

Kamo·6mo ago
FixMediaService

Extinde scanarea depozitului JPA pentru a include pachetul comercial

Noul librar kamo-împărtășește aduce în *************** care necesită - Nu. (în com.kamo.z.shared. commerce). MediaService doar scanat numodifica.dao.repos, deci...

Kamo·6mo ago
FixMediaService

Restaurare HashMap import în ChatWebSocketController

Refactorul anterior a eliminat importul HashMap dar manerTyping metoda construiește încă un HashMap pentru sarcina utilă eveniment de dactilografiere, cauzând F...

Kamo·6mo ago
Fixkamo-internal

Adăugaţi min-w-0 la e-mail conţinut div atât de supraîncărcat-x-auto incendii

Fără min-w-0, dimensiunea minimă implicită a copilului flex-col:auto se rezolvă conţinut-min, permiţând tabele largi de e-mail extinde div peste coloana lățimea...

kamo·6mo ago
Fixkamo-marketing

Elimină apelul de conectareStomp în message

Atunci când primul mesaj creează o nouă sesiune, onSessionCreated updates recuzită care declanşează utilizareaEffect pentru a apela ConnectStomp. Apelul inline ...

Kamo·6mo ago
FixMediaService

Creează activ consumatorul NAT la crearea sesiunii pentru a preveni pierderea mesajelor

Din episoadele anterioare: trimis /app/chat/subscribe. Cu DeliverPolicy. Nou, orice mesaje publicate înainte de consumatorul există sunt permanent pierdute Nic...

Kamo·6mo ago
Fixkamo-internal

Închide decalajul de reconectare care cauzează mesaje în timp real scăzute

Eliminați ChatBox. Anterior, fiecare reconectare WebSocket declanșat efectul Curățare care a numit unsubscribe(), șters sesiunea din harta abonamentului, și tr...

kamo·6mo ago
FixSecurityService

Permite utilizatorului sistemului să gestioneze branding-ul org și să stabilească logo-ul auth

- Adăugați bypass-ul utilizatorului sistemului ca prim paznic în canManageOrgBranding astfel platforma utilizatorul sistemului are control complet asupra tuturo...

Kamo·6mo ago
Fixkamo-internal

Conţine supraîncărcare orizontală în vedere vedere e-mail la coloana a 3-a

- Adăugați supraîncărcare-x-ascuns în Containerul exterior de mesaj ca limită tare - Adăugaţi supraîncărcare-x-ascuns la coloana 3 ambalaj şi supraîncărcare-x-a...

kamo·6mo ago
FixKlusterServices

Se înlocuiește Coqui TTS cu Piper TTS (en US-norman-mediu)

Modelul Coqui VCTK nu are boxe numite vocea exacta a lui Norman [mediu]. Piper binar (~3 MB) și model (~60 MB) sunt descărcate de un container init pe prima cu...

Kamo·6mo ago
FixEmailService

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...

Kamo·6mo ago
Fixkamo-internal

Pre-populare DE la răspuns / înainte și fix trimite de la Adress

- DraftMessage acum poartă de la Adress astfel încât curge de la OpenNewMessage prin intermediul compozitorului - MesajBrowser stochează e-mailul cu căsuță poșt...

kamo·6mo ago
FixEmailService

Suport de la @ info: whatsthis

Adaugă FromAddressRequest to EmailSendRequest so the frontend can specification din care se poate trimite adresa de e-mail/împărtășit/cutie. SmtpOnlyProvider ac...

Kamo·6mo ago
FixKlusterServices

Adaugă local net pentru Split-DNS / LAN client RTP fix

Telefoane pe același LAN ca și conexiunea k1m1 prin DNS divizat (domeniul rezolvă la 192.168.4.22 intern). Fără a local net, Asterisk încă face publicitate dome...

Kamo·6mo ago
FixKlusterServices

Contact vrăjitoresc persist = fix memorie și bloc SIP scanner la pornire.sh

- Injectaţi [res pjsip] contact=memorie în vrăjitorie.conf înainte de începerea tratamentului cu Asterisc; backend-ul implicit SQLite scade în tăcere toate cont...

Kamo·6mo ago
Fixkamo-internal

Sub-tab content fills full content-area width

Drop the centered max-width constraint (was 920 / 1200 / 680 / 720 depending on tab) on SubTabShell. The page already lives inside SettingsView's content column...

kamo·6mo ago
FixEmailService

Fix attachment parsing and hasAttachment false positives

Three fixes to EmailImapService: 1. toEnvelope: narrow multipart check to multipart/mixed only — plain HTML+text emails (multipart/alternative) no longer sh...

Kamo·6mo ago
Fixkamo-internal

Add download button to classic view attachment section

The classic view (MessageBrowser) had its own attachment list that was missing the download button — only the conversation view was fixed previously. Also align...

kamo·6mo ago
April 24, 2026
FixEmailService

Add com.kamo.z.shared.commerce to EnableJpaRepositories scan

**************** (required by **************** in the shared library) lives under com.kamo.z.shared.commerce but was not included in the JPA repository scan, ca...

Kamo·6mo ago
Fixkamo-internal

Layout corespunzătoare, budding, și logo-uri furnizor

Fixare/spațiere: - Toate cele şase file (Providers, Extensii, Utilizatori de telefoane, Dispozitive, Voicemail, Health) Acum împachetați conținutul lor într-un ...

kamo·6mo ago
FixEmailService

Numele și tipul de câmp corecte în răspuns de la Adders

Platforma trimitea cheia 'e-mail' dar frontend se aştepta la 'adresă' şi a trimis tip "împărtășit mailbox" atunci când frontend se aștepta la "împărțit." De ase...

Kamo·6mo ago
Fixkamo-internal

Load FROM addresses from accessible mailboxes and aliases

Replaces the broken getFromAddresses() endpoint (which sent 'email' instead of 'address') with getAccessibleMailboxes() + listMemberAliases(), matching the same...

kamo·6mo ago
FixInitializerService

Utilizaţi sintaxa CockroachDB-compatibilă DROP INDEX CASCADE

CockroachDB respinge tabelul ALTER ... DROP CONTRAINT pentru constrângerile UNIQUE cu: neimplementată: nu poate scădea constrângerea UNIQUE "uk org oauth prov...

Kamo·6mo ago
FixVOIPService

Include com.kamo.z.shared.commerce în scanare depozit

Ultimele propagate kamo-shared-library - Nu. (numodificați.dao.servicii) care are o dependență de constructor Nu-ţi face griji. Nu-ţi face griji. ă serviciul es...

Kamo·6mo ago
Fixkamo-internal

Adaugă butonul de descărcare atașament și decuplează marca ca citit

- Adăugați un buton de descărcare pictogramă la fiecare rând de atașare astfel încât utilizatorii pot forța o descărcare fișier în loc de deschiderea numai într...

kamo·6mo ago
FixKlusterServices

Mută gazdaPath din MinIO (rclone FUSE) la local /var/lib/pbx

MinIO via rclone FUSE nu suportă CHmod POSIX sau Symlink () impusă de sistemul modulului FreePBX. Schimbat toate FreePBX și MariaDB gazduieste Volume path de la...

Kamo·6mo ago
FixKlusterServices

Wrap fwconsolă/amportal prin php pentru MinIO FUSE gazdăPath

/var/lib/asterisk este susținut de MinIO via rclone FUSE care nu suportă POSIX chmod, astfel încât scripturile fwconsole nu pot fi executate pe acest volum. sta...

Kamo·6mo ago
FixKlusterServices

Adaugă preStop cârlig și terminareGracePeriodSeconds

Containerele au fost obtinerea blocat în Terminare deoarece fundal Asterisc procesele continuate după apache2ctl (PID 1) ieșit. PreStop cârlig trimite SIGTERM t...

Kamo·6mo ago
FixKlusterServices

Adăugați bootstrap.php nevoie pentru a regenerat /etc/freepbx.conf

Instalatorul scrie freepbx.conf cu sursa de date=" și one once pentru bootstrap.php, care config.php depinde de încărcarea clasei FreePBX. Versiunea noastra reg...

Kamo·6mo ago
FixKlusterServices

Regenerează/etc/freepbx.conf la repornire

/etc este efemeră (nu o gazdăPath), deci /etc/freepbx.conf scris de Instalatorul este pierdut la fiecare repornire. Ramură adăugată pentru regenerare ea de la e...

Kamo·6mo ago
FixKlusterServices

Bypass start asterisk, așteptați priza de control în schimb

start asterisk foloseste Reporneşte, făcând ca bucla de aşteptare pentru Asterisk să fie atârnată. Acum porneşte. Asterisk direct prin safe asterisk (după ce a...

Kamo·6mo ago
FixKlusterServices

Start Asterisc în fundal, așteptați pentru ea, apoi executați instalator

Punctul de intrare.sh nu ruleaza FreePBX incursiune servicii. startup.sh acum reproduce pașii de configurare punctul de intrare, începe Asterisk în fundal, așt...

Kamo·6mo ago
FixKlusterServices

Lasă punctul de intrare să se ocupe de instalare, nu de pornire.sh

Instalator FreePBX (php install -n) necesită asterisk să fie deja Alergând. Startup nostru.sh a fost de asteptare înainte de a începe Asterisk, provocând "Error...

Kamo·6mo ago
FixKlusterServices

Mont /etc/asterisk numai, nu /etc, pentru a remedia eroarea PHP simplexml

Montarea întregului /etc ca gazdă Volumul Path corupea extensia PHP încărcare chiar și după însămânțare din imagine la timpul de instalare. Acum doar /etc / as...

Kamo·6mo ago
FixKlusterServices

Reducerea limitelor de procesor la raportul 2:1 pentru eliminarea supraangajamentului

Docs 4→1 core, jibri 4→2 cores, libretranslate 2→1 core, bergamot 2→1 miez, coturn 1→0.5 miez. Salvează ~7,5 nuclee off limite nod.

Kamo·6mo ago
FixKlusterServices

Comută la escomputers/freepbx:17 cu arhitectura corectă

obosit/freepbx nu are imagine FreePBX 17 (abandonată din 2022). escomputers/freepbx:17 (actualizat Apr 2026, Asterisk 21 + FreePBX 17) necesită un pod separat M...

Kamo·6mo ago
Fixkamo-internal

Parse FormularData înainte de expediere pentru a preveni corupția binară

request.text() on multipart/form-data corupe binare file bytes; pass parsed FormDate as init.body so forward ToApi skips request.text() Şi hai să regeneram un m...

kamo·6mo ago
Fixkamo-internal

Eliminați minHeight:100vh cauzând bare duble de defilare

Cutia exterioară minHeight:100vh a depășit calcul aspectului (100vh - 56px) container, care a cauzat atât sulul de nivel de browser și interior revărsare:auto s...

kamo·6mo ago
Fixkamo-internal

Afişează antetul coloanei de plăţi vechi din tabelul modelelor de securitate

Când câmpul de auto-plată al angajatului Kamo a fost eliminat, potrivirea TabelulCell în corpul rând a fost șters, dar rândul antet a avut încă "<TeamMember> Pa...

kamo·6mo ago
FixSecurityService

Motivul real de suprafață în spatele GoDaddy 400 eroare

GoDaddy returnează acum HTTP 400 cu cod=UNABLE TO AUTENTICATE și corp "Cerere proasta: cerere proasta" atunci cand un cont nu corespunde curentului producţie Do...

Kamo·6mo ago
Fixkamo-internal

Cenzura sub-tab acum face ATF primul pe spec

Reordonează cardurile de cenzură pentru a corespunde ordinului solicitat: 1. Alcool, tutun şi arme de foc 2. Limitele de vârstă permise membrilor 3. Stagiarii p...

kamo·6mo ago
FixSecurityService

Domenii Eager-load prin findByIdWithDomains, drop @Transactional

@Transacţional pe o metodă de controler păstrează o conexiune DB deschisă peste întregul MinIO upload, și, de asemenea, riscă LazyInitializare Excepție în cazul...

Kamo·6mo ago
Fixkamo-internal

Elimină duplicatul?tip= din apiPath

forwardToApi aboneaza deja Search (?type=...) din original solicita URL. Embedding ?type= a doua oară în apiPath produs ?type=full?type=full at the backend, so ...

kamo·6mo ago
Fixkamo-internal

Restaurare comutator cutie poștală pentru ID-uri membre int64

Utilizați getMemberIdString pentru cutiile poștale/membru aduce, normaliza id/mailboxId de la EmailService, și conduce comutatorul de la personal accesibil căsu...

kamo·6mo ago
Fixkamo-register

URL-uri logo Cache-bust folosind temaRevision from config.json

DynamicMetaLoader stochează acum temaRevision în sesiuneStorage and fires KAMO THE ME CONFIG LOADED după ce a adus config.json. TemaLogo ascultă pentru acest ev...

Kamo·6mo ago

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing