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

Drop VOIPService spec md din repo

Conform convenţiei de proiect (.md fişierele nu se trimit cu servicii).

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
Featurekamo-internal

File de configurare a platformei (General / VOIP & SMS / System User / Advanced)

Ambalaje *******************************************************************************************************************************************************...

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
FeatureDaemonService

Sincronizare VOIP globală (interval maxim)

VoipGlobalSyncJob ticăie în fiecare minut și, pe fiecare căpușă, citește SystemConfigurare singleton pentru a decide dacă o sincronizare globală este datorată: ...

Kamo·6mo ago
FeatureSecurityService

Etapele finale ale sistemului-config + ale platformei

Suprafata de configurare la nivel de platforma, poartata de proprietarul de nivel superior existent paznic (matches SystemUserConfigController's requireTopLevel...

Kamo·6mo ago
FeatureVOIPService

Controlori de resurse perintență + agregate org + sincronizare internă

Resurse perintentale CRUD (extensii / utilizatori / dispozitive / voicemail): - VoipExtensiiController la ************* - VoipUsersController la /api/voip/insta...

Kamo·6mo ago
FeatureVOIPService

Refactor furnizor multi-stanță + full FreePBX + Flowroute SMS

Modificarea modelului de bază: un org → multe VoipProviderInstances (a fost: un per org). Fiecare furnizor de apeluri API este acum spectaculos. Interfață tele...

Kamo·6mo ago
FeatureInitializerService

Migrație multi-integrare telefon/furnizor SMS

Rulează după Hibernate ddl-auto:actualizarea creează noi tabele (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INstanCE, PHONE EXTENSION, PHONE END USER, PHONE DEV...

Kamo·6mo ago
Featurekamo-shared-library

Fundaţia de sisteme multi-intestinale de telefonie/furnizor SMS

- Redenumește VoipProviderConfig → VoipProvider CONFIG; picătură UNIQUE(org id), adaugă instance name, config json, last sync at, last sync error. - Redenumește...

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
ChoreKlusterServices

Drop public admin ingress; acces prin http://k[12]m1:8088

Admin UI este acum intern-doar peste LAN / WireGuard pe portul 8088 (FreePBX's nginx legat direct pe hosteNetwork). Nu Traefik traseu, nu Să cripteze cert, nici...

Kamo·6mo ago
FeatureKlusterServices

Desfăşuraţi podul FreePBX 17 + Jigasi SIP pe k1m1 şi k2m1

FreePBX (obosit/freepbx:17-ultimul) ruleaza cu gazdaNetwork astfel SIP/RTP păstrează IP-uri reale ale clienților, blocate one-per-node prin nodSelector. SIP pe ...

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
Refactorkamo-internal

Drop editor page header, redenumește General sub-tab

- Îndepărtează pictograma spate-săgeată + ecran + titlu + subtitrare partea de sus a editorului de securitate-model / master-model. Butonul de anulare în bara d...

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
Featurekamo-internal

Vedere, paginare, căutare live, filtre, logo-uri org

Administratorii platformei (proprietar de org de nivel superior) văd acum fiecare org din sistem prin intermediul un nou obiectiv/api/securitate/org/toate retel...

kamo·6mo ago
FeatureSecurityService

Adăugați GET / api/security/org/toate rețelele pentru admin-uri platforme

Proprietarii de org de nivel superior pot aduce acum toate organizațiile din sistem cu informaţii de membru referitoare la apelant. Orgs unde apelantul are un m...

Kamo·6mo ago
Featurekamo-internal

Sub-tabe în editor model de securitate + curățare

- Editor-model de securitate pe ************* este acum divizat în patru sub-tabe: General (Informații de bază, Vizibilitate, Cine poate crea, Setări platforme,...

kamo·6mo ago
RefactorInitializerService

Drop teamMemberPayFeesSeting from DataLoader

Furnizorul-model principal nu mai trece de plata tristatală eliminată setarea la crearea modelului principal de securitate ChildOrgSecurityModel şi supraîncărc...

Kamo·6mo ago
RefactorSecurityService

Drop teamMemberPayFeesSetarea parametrului

Mirrors the shared-library change MasterModelController, și ModelController aplicat nu mai citesc / scrie Echipa Membru PayFees Setare. Redactorul de tipuri de...

Kamo·6mo ago
Refactorkamo-shared-library

Drop teamMemberPayFees Setare

Politica privind taxa de auto-plată a angajatului a dispărut. facturarea pe grup, nu prin intermediul modelului de securitate. Elimină EchipaMemberPayFeesSetare...

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
Featurekamo-internal

Vizibilitate Alias UI + Butonul Sucursale Subdomeniu pe pagina de tipuri de ramură

SubdomeniuBranchesDialog: - Editorul Alias a înlocuit lista de cipuri cu o listă de rând în stil tabel care arată Membrii și membrii echipei de checkboxes per a...

kamo·6mo ago
FeatureSecurityService

Filtrare vizibilitate Alias + auto-verificare proprietate subdomeniu

OrganizationController: - Web-alias org creation now auto-marks propertyVerified=true and isDnsVerified=adevărat pe creat OrgDomain Am furnizat DNS pe GoDaddy ...

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