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 26, 2026
FixKlusterServices

Faceți configurarea WebRTC supraviețui repornire pod

Abordarea anterioară (http custom.conf cu [general] suprascriere) nu a De fapt, să-şi facă efectul pentru că Asterisk's INI parser nu onorează mai multe Secţiun...

Kamo·6mo ago
FixKlusterServices

Activează serverul Asterisk integrat HTTP pe :8089 pentru WebRTC /ws

A chan pjsip care, la rândul său, necesită serverul Asterisk încorporat HTTP pentru a fi difuzate. ă implicit FreePBX 17 instala nave cu acel server dezactivat...

Kamo·6mo ago
FixSecurityService

Prioritizează numele real primul/ultimul peste numele de utilizator Alias pentru afișare

numele de utilizator Alias este un mâner de autentificare funcțional (de multe ori egal cu numele de utilizator); nu este un nume de afișare. Numele real citit ...

Kamo·6mo ago
Fixkamo-internal

Domeniul de aplicare Adăugați sulul de plumb și footer în zona sa de conținut

Formularul a fost folosind minHeight: 100vh în interiorul unui părinte care este deja calc (100vh - 56px), forțând o bară exterioară de defilare chiar și atunci...

kamo·6mo ago
Fixkamo-internal

Layout inteligent multi-coloană pentru formularul Add Lead

Restructurați pagina într-o rețea de nivel superior astfel încât secțiunile să compună orizontal în loc să se întindă câmpuri individuale: - Piata & Detaliu fo...

kamo·6mo ago
Fixkamo-internal

Utilizare /api/securitate/membri/denumiri pentru rezoluția numelui membrului desemnat

Filtrele de evaluare a obiectivului de la distanță numai pentru membrii activi ai echipei, lipsă sarcinile membrilor de bază sau ale membrilor inactivi. Comută ...

kamo·6mo ago
Fixkamo-internal

Lăţime completă Adaugă formă de plumb şi clearance-ul pentru picior lipicios

Picătură 1200px max-lățime pe /lide/nou astfel încât forma se întinde zona de pagină, și bumping de fund astfel încât bara de acțiune lipicios nu se mai suprapu...

kamo·6mo ago
FixSecurityService

Rezolvaţi numele de afişare cu prioritate corectă în cadrul obiectivului de evaluare a departamentului

Prioritate: membru.username Alias → utilizator.name.formatFull() → utilizator.alias → utilizator.username

Kamo·6mo ago
Fixkamo-internal

Proba de evaluare a modelului principal și fixați ID-ul model org aplicat

- Înlocuiți poarta aplicatăModel.Source cu o sondă directă de /api/security/master-model on mount; r.ok=fals (409) means the org este guvernată de un tip de suc...

kamo·6mo ago
Fixkamo-internal

Gate censorship tab options by applied model constraints

- Hide EDIT MASTER MODEL button when org is governed by a branch type (use appliedModel.source instead of unreliable org context branchTypeID) - Hide ATF fiel...

kamo·6mo ago
Fixkamo-internal

Mark-as-read and message fetch for shared/member mailboxes

Classic mode now loads shared mailbox messages via the correct /messages/{folder} endpoint (was calling the non-existent /conversations endpoint). Fetching a fu...

kamo·6mo ago
FixEmailService

Mark-as-read for shared and member mailboxes

EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...

Kamo·6mo ago
FixVOIPService

Use extensionId as external ID, not Relay node id

FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...

Kamo·6mo ago
FixEmailService

Handle IMAPInputStream in getMessage pentru a preveni ClassCastException

JavaMail poate returna un IMAPInputStream în loc de un string decodat de la part.getContent() atunci când conținutul mesajului nu a fost pre-inventat. ă mulaje ...

Kamo·6mo ago
FixVOIPService

Rescrie toate întrebările/mutările GQL împotriva introspecţiei de schemă live

Verificat fiecare nume de câmp și tip împotriva schema FreePBX 17 reale. Set complet de corecții: Întrebări: - aduceţiAllExtensii: eliminaţi câmpul inexistent ...

Kamo·6mo ago
Fixkamo-internal

Pasează dosarul selectat către ThreadDetailView astfel e-mail:foldere schimbate cu un dosar valid

conversation.folder este întotdeauna nedefinit deoarece Conversația JavaEntity are foldIds (text[]) nu este un câmp de coarde. Acest lucru a cauzat sarcinaThrea...

kamo·6mo ago
FixVOIPService

Numele de câmp GrafQL corect pentru a aduceAsteriskDetails

FreePBX API întoarce "Aţi vrut să spuneţi "AsteriskDetails"? verifică interogarea și accesorul traseului de date în consecință.

Kamo·6mo ago
FixVOIPService

Adăugați antetele XHR/Accept și răspunsul String parsing la clientul GraphQL

Același model ca FreePBXTokenCache: adăugați X-Requested-Cu + Accept: aplicație/json pentru a suprima răspunsurile de redirecționare HTML FreePBX, și comuta toa...

Kamo·6mo ago
Fixkamo-internal

Sincronizează căsuţa poştală dropdown în căsuţa poştală primară la încărcare

Dropdown implicit la primul element listă deoarece selectat Mailbox inițializat fără o cutie poștalăId, ceea ce face ca actualValue să se rezolve la "personal" ...

kamo·6mo ago
FixAPIService

Mărește limita de încărcare a fișierului la 500MB

Primavara Boot implicit capac piese multipart la 1MB, provocând imagini de fundal uploads to fail with 500 in request.getParts(). Potrivire serviciu de securita...

Kamo·6mo ago
Fixkamo-internal

Erori HTTP de suprafață, astfel încât defecțiunile de încărcare sunt vizibile

Consolă silențioasă înlocuită.Avertizare cu o eroare aruncată la starea non-OK, astfel încât utilizatorul vede motivul de eșec real (status + răspuns organism) ...

kamo·6mo ago
FixVOIPService

Adăugaţi antetele Accept+XHR şi răspunsul la coarda brută pentru criteriul final de evaluare

FreePBX returna textul/html când a fost apelat prin cluster DNS deoarece Antet gazdă nu se potrivește cu PBX HOSTNAME configurat. Adăugarea Accept: aplicație/js...

Kamo·6mo ago
Fixkamo-marketing

Drive minimizat-tab intrare prin controale de animație

Comutarea animației = {...} la animație={tabControale} a rupt intrarea animație: tabControale nu are o țintă coadă pe montare, astfel încât butonul a rămas la p...

Kamo·6mo ago
FixVOIPService

Coarde OAuth2 corecte pentru API FreePBX

Domeniul de aplicare FreePBX sunt identificatori de nivel superior: "gql" (toate GraphQL) și "rest" (toate odihnă). Formatul "gql:read" înseamnă GQL pentru un m...

Kamo·6mo ago
FixKlusterServices

Expune portul 8088 direct pe serviciul ClusterIP

Serviciul a avut doar port 80→8088 cartografiere. Servicii interne care utilizează - Nu. (de exemplu, VOIPservice API token cereri) au fost calendarul pentru că...

Kamo·6mo ago
Fixkamo-internal

Trust backend waitingCount, drop client offsets

Platforma în așteptareCount este acum necitit-based (contele SPECIAL TICKET sesiuni cu mesaje mai noi decât ultima vizionare a proprietarului). Când agentul se ...

kamo·6mo ago
FixKlusterServices

Adaugă eșuează2ban-config ConfigHartă pentru k1m1

Referințe de desfășurare eșuează2ban-config ConfigMap (jail.local + asterisc-security.conf) dar nu a existat, blocând pod la Muntele Volume. Setare și prevenire...

Kamo·6mo ago
April 25, 2026
Fixkamo-internal

MarkAsRead după ce agentul trimite atât de ultimele avansuri vizionate

Pe biletele de sprijin, atât mesajele vizitatorilor, cât și ale agenților sunt stocate sub Același membru al sistemului, astfel încât interogarea necitit-conte ...

kamo·6mo ago
Fixkamo-shared-library

Bilete de sprijin au nevoie de numărătoare necitite agnostică a membrilor

Mesajele vizitatorilor de pe biletele de sprijin sunt stocate sub acelaşi sistemMember pe care agentul o autentifică, astfel încât sesiunea CHAT existentă să nu...

Kamo·6mo ago
Fixkamo-internal

Pass folder to chargeThread retry buton

take-uri de încărcareThread (fisier, folder); numai butonul de retrimitere a stării de eroare a trecut firId, ruperea cladirii kamo-interna. Meci de apel la sem...

kamo·6mo ago
Fixkamo-shared-library

Corectează JsonIdentitatea Info proprietate de la 'uniqueId' la 'id'

Entitatea membru declarată @JsonIdentityInfo[property = "uniqueId") dar Câmpul principal principal principal este numit "ID." Jackson aruncat "nu poate găsi o p...

Kamo·6mo ago
Fixkamo-marketing

Eliminați garda SSR care cauzează neconcordanțe de hidratare; picătură SockJS pentru WebSocket nativ

- Ero.tsx: eliminați tipul de verificare a ferestrei în jurul ParticuleField are ssr:fals astfel încât paznicul a produs un server / client nepotrivire copac (...

Kamo·6mo ago
Fixkamo-internal

Indicatoare clare necitite la deschiderea conversației

ThreadDetailView expedies e-mail:folder-changed after markConversationRead reuseste astfel MailButton restabileste insigna inbox invtop conta. ConversațieListVi...

kamo·6mo ago
FixAPIService

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

Kamo·6mo ago
Fixkamo-marketing

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

Kamo·6mo ago
Fixkamo-internal

Break min-w-0 chain to contain email scroll in body column only

Add min-w-0 to outer container and main content flex div so flex children cannot expand to email min-content width, which was causing the page-wide horizontal s...

kamo·6mo ago
Fixkamo-internal

Furnizorii de înaltă peste ToolProviders

Aceeași cauză rădăcină ca ChatWebSocketProvider elevator: SuportTicketWindow apeluri *************** și apeluri ChatBox useUnread().markAsRead(), dar ambele fer...

kamo·6mo ago
Fixkamo-marketing

Adaugă supresieHydrationAvertizare și repara imagini disfuncționale

supresieHydration Warning on <html> previne eroarea de reacție #418 cauzată de browser extensii (ex. traducere, modul închis) atribute mutante html între SSR și...

Kamo·6mo ago
FixKlusterServices

Permite/domeniul/prefixul traseului pe tema IngressRoute pentru CORS

Tema config la tema.kamocrm.com/domeniu/... nu a fost potrivit de regulile de rută existente (numai/public/ și/internă/au fost permise), așa că Traefik a return...

Kamo·6mo ago
FixAPIService

Eliminați antetele duplicate CorsFilter și benzi în amonte CORS în poarta de acces

WebConfig.java a definit o a doua fasole CorsFilter care concurează cu CorsConfig. Java Bean, riscând duplicatul scrie. A şters-o ca să existe doar un singur Co...

Kamo·6mo ago
FixSecurityService

Eliminați duplicatul boabelor de CorsFilter care cauzează header dublu Access-Control-Allow-Origin

Boabele explicite de CorsFilter au cauzat un al doilea filtru CORS alături de primăvară Suport CORS încorporat de securitate (care utilizează CorsConfigurationS...

Kamo·6mo ago
Fixkamo-internal

Elimină declarațiile consolei de depanare.log și adaugă rutele lipsă

Elimină toate depanările temporare adăugate în timpul urmăririi WebSocket de la ChatBox, TicketChat, MemberItem, ChatTool și utilizațiChatWebSocket; adăugați pa...

kamo·6mo ago
Fixkamo-internal

Preveniți antetul mesajului de la extinderea coloanei pe adrese lungi

Copilul flex stânga header a avut nici un min-w-0, atât de lung e-mail de nerupt adresa din From/To/Cc a forțat lățimea de conținut min să crească, târâre antet...

kamo·6mo ago
Fixkamo-internal

Hoist ChatWebSocketProvider deasupra ToolProviders

ToolDock (și ferestrele sale instrument cum ar fi SuportTicketWindow → TicketChat) este montat în interiorul ToolProviders, care stă ABOVE PrezențăWrapper în co...

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