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 29, 2026
Fixkamo-internal

Load org logos from MinIO theme public path like dashboard

Use getThemePublicBaseForDomain so logo URLs match getThemePath()/img/logo.svg instead of legacy /domain/.../kamosite paths that 404 and fell back to initials.

kamo·6mo ago
Fixkamo-internal

Add missing nav-top strings and scope translations

English messages listed components.navtop.* keys for Mail/Docs/Voip buttons but never defined hi/welcome, branches, account, credits, calendar, chat, etc., so n...

kamo·6mo ago
Fixkamo-internal

Resolve nav-pri labels showing raw i18n keys

Use namespaced next-intl translators for nav and components.nav.navPri so lookups resolve against the merged message trees; add panel aria strings under navPri;...

kamo·6mo ago
Fixkamo-internal

Add MessageBrowser i18n strings and restore load error copy

next-intl threw MISSING_MESSAGE for components.messages.browser.* keys missing from en.json, breaking /messages render. Add English strings, use loadMessagesFai...

kamo·6mo ago
FixVOIPService

Construiește înregistrarea MinIO obiect cheie ca flux imagistic

Omit extensia atunci când fişierul EXT este nul/gol astfel încât numele obiectului se potrivește ÎnregistrareImagingService și ImagingController. Java șir conca...

Kamo·6mo ago
Fixkamo-internal

Anulează apelarea dacă ai sunat înainte de rezolvarea sdk.invite

Starea cursei: agățare () în timpul conectării nu a avut nici o sesiune pentru a termina încă (Sdk.invite este așteptat înainte de WireSesssion), astfel încât a...

kamo·6mo ago
Fixkamo-internal

Auto-enter org nou după creare astfel încât membrii aterizează cu propriul rol și drepturile lor

După crearea org sesiunea a rămas în contextul părinte (fără drepturi admin), lăsând noul proprietar de org incapabil să vadă setările. Acum, creați vrăjitorul ...

kamo·6mo ago
Fixkamo-internal

Permite apelul final în timpul conectării, dezactiva AI asistent, elimina tab-ul coada

- Butonul apel final este acum activ și roșu în timpul stării de conectare astfel încât apelurile să poată fi anulate înainte de a se conecta - Dezactivează but...

kamo·6mo ago
FixVOIPService

Rezolva istoricul apelurilor de la membru voip config, nu la telefon extensie

***************** a fost NULL pentru unele extensii chiar şi atunci când membru voip config corect cartografiat membrul la extinderea lor. Utilizarea membru voi...

Kamo·6mo ago
Fixkamo-internal

Full touch support for softphone popup on tablets

- Add touch-action: manipulation + WebkitTapHighlightColor to iconBtnStyle so window control buttons (minimize/maximize/close) respond instantly on touch - Ad...

kamo·6mo ago
Fixkamo-asterisk-support

Add go-sql-driver/mysql v1.7.1 checksum to go.sum

go mod tidy without source files is a no-op, so the mysql checksum was never added. Generated the correct h1 hashes via a throwaway golang:1.22-alpine container...

Kamo·6mo ago
Fixkamo-shared-library

AtributeConverter

Rândurile DB aveau țara ca număr întreg ordinar (de exemplu, "186" pentru UNITED STATES) în loc de nume enum, care cauzează Argument ilegal Excepție pe găsiToat...

Kamo·6mo ago
Fixkamo-internal

Anula traduce locuri de muncă instantaneu prin rularea tsx în fundal

Când Forgejo anulează un flux de lucru, bash așteaptă pentru orice copil prim-plan pentru a termina înainte de procesarea semnalului ar bloca anularea pentru m...

kamo·6mo ago
Fixkamo-asterisk-support

Mută ASTERISK CDR DSN la config.json local, nu secrete CI/CD

Acreditările CDR sunt locale pentru fiecare server FreePBX și nu au afaceri în conducta CI/CD. Operatorii adaugă ASTERISK CDR DSN direct la acestea config.json ...

Kamo·6mo ago
FixSecurityService

Permite accesul ridicat la criteriile de evaluare DomainById și de verificare-dns

Proprietarii de org de nivel superior și membrii sistemului au fost obtinerea 403 pe getDomainBy Id și verificați-dns, deoarece aceste criterii de evaluare veri...

Kamo·6mo ago
Fixkamo-internal

Afișează domeniul de org existent în loc de formularul de intrare atunci când nu există domeniu personalizat

Înapoi la subdomeniu platforma org ca domeniu de afișare astfel DnsProgressView redă mai degrabă decât DomainEntryForm atunci când nu există nici un domeniu ext...

kamo·6mo ago
FixVOIPService

Surface imaging fallback when provider has no call history

KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...

Kamo·6mo ago
Fixkamo-internal

Restore NavPri panel labels and LeadHistory column headers

NavPri: salvage-keys grabbed href URLs as label values and swapped label/description pairs for Accounts, KB, and Notes nav panels. LeadHistoryPanel: MUI bgcolo...

kamo·6mo ago
Fixkamo-internal

Show platform domain context when no custom domain is set

Surface the active *.kamocrm.com hostname in the domain entry form so users can see their current platform domain instead of a blank entry screen. Also fixes ve...

kamo·6mo ago
Fixkamo-internal

Checkpoint translations per chunk and per locale on main

Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...

kamo·6mo ago
Fixkamo-internal

Checkpoint translations per chunk and per locale on main

Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...

kamo·6mo ago
April 28, 2026
Fixkamo-internal

Disable Docker BuildKit cache so every pipeline run does a full rebuild

Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.

kamo·6mo ago
Fixkamo-internal

Bust Docker BuildKit cache per commit so npm run build runs every push

Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...

kamo·6mo ago
Fixkamo-internal

Adaugă etichete lipsă de chat

kamo·6mo ago
FixEmailService

Sincronizează membrii.email atunci când căsuţa poştală primară este atribuită, modificată sau eliminată

Atunci când o cutie poștală a fost atribuită unui membru într-un org KAMO MAIL, membrii.email nu a fost niciodată actualizat, provocând EmailCredentialService s...

Kamo·6mo ago
FixSecurityService

Preveniți domeniile de rădăcină duplicate și fixați ecranul de domeniu primar

Verificare ONE DOMAIN PER ORG exclusă incorect.kamocrm.com web-alias domenii, care permit unei orgi să acumuleze mai multe domenii rădăcină (și 10 aliasuri fiec...

Kamo·6mo ago
Fixkamo-internal

Serializeaza securitatea membrilor si membrii Pune apelurile pentru a evita conflictul CockroachDB

Două scrieri simultane la aceeași linie de membri a cauzat un serializable Conflict de izolare Obiectivul scris (întotdeauna prin dataUpdated), abandonarea une...

kamo·6mo ago
FixSecurityService

Reduceți latența de creare a org-urilor și reparați eșecurile în cascadă ale traducerii

- OrganizationController: replacesesureTeamMembers For AllOrgs (org complet Scanare de masă) cu asigurareaMemberTeamForOrg (un singur org) ~400ms×N DB rotund-ex...

Kamo·6mo ago
Fixkamo-shared-library

Widen commit log translations.title to TEXT to match DB column

Coloana a fost VARCHAR (512) atât în adnotare, cât și în DB, cauzând inserții de traducere pentru a eșua pentru lunga traducere titluri. Coloana DB este: acum S...

Kamo·6mo ago
Fixkamo-internal

Despachetează catalogul și calculul din plicul de răspuns backend

abonamentCatalog returnat { catalog: {...} dar a fost distribuit direct ca AbonamentCatalog, lăsând catalogul.planuri nedefinite și planul pas de selecție gol. ...

kamo·6mo ago
FixBillingService

Adăugați @JsonProperty la este*-prefix boolean DTO câmpurile

Lombok generează isXxx() is-getters pentru câmpurile booleane numite isXxx. Jackson fâşii de plumb "este" de la ist-geters şi le serializează ca 'xxx' mai degra...

Kamo·6mo ago
Fixkamo-internal

Utilizați ss în loc de fuser pentru a ucide vechi port-forward (Fuser nu pe k0m1)

fuper și Isof nu sunt instalate pe gazda alergător. Utilizaţi ss - tlnp cu Grep pentru a extrage portul PID exploatație 18080 și ucide-l direct. De asemenea. co...

kamo·6mo ago
Fixkamo-internal

Curățați portul vechi înainte, astfel încât anulat traduce locul de muncă nu blochează următoarea cursă

Bash nu transmite semnale la procesele de fundal, deci kubectl Port-forward a depășit fluxurile de lucru anulate și a deținut portul 18080; blocarea fiecărei lu...

kamo·6mo ago
Fixkamo-internal

Restaurare toate valorile amplasării rupte pe pagini

Salvage-cheie script had happed CSS classNames, inline styles, and JS șablon literals în loc de textul original în limba engleză pentru 114 mesaj cheile se înti...

kamo·6mo ago
Fixkamo-internal

Restaurare conduce pagina erou titlu și subtitrare din istoria git

eroul "Titlul eroului" a fost "Titlul eroului" (Plastholder), eroul Subtitrare a fost "Flex Gap-2" (cheile de salvage au luat accidental numele clasei CSS adiac...

kamo·6mo ago
Fixkamo-register

Activează butonul de finisare prin sondaj widget.getState() și trecerea la automat=onload

Ascultătorul evenimentului de schimbare de stat nu a permis în mod fiabil butonul Final după verificare. Două cauze profunde: 1. Logica de scurgere citește wid...

Kamo·6mo ago
FixBillingService

Include conturile care vizează subscrierea în lista org

listaForOrg returnează acum și conturile ale căror abonamente vizează Orga solicitată nu numai conturile deținute direct de aceasta. În multiorg model de cont p...

Kamo·6mo ago
Fixkamo-internal

Adaugă statusLumea etichetelor namespace și fixează toate suporturile de setare

- Adăugaţi *************** (50 de chei) astfel încât setările bara laterală Nav arată text real în loc de căi cheie - Fix ramuraTypesLabel ICU format: \$ {brand...

kamo·6mo ago
Fixkamo-internal

Se potrivesc cu alte ferestre instrument dimensiunea + schema de culoare

- implicitSize and minSize now 320x650, resizable: fals (matches Softphone, Chat, Calculator, SMS, AI Chat) - Comutat de la gradient negru la gradient standard ...

kamo·6mo ago
Fixkamo-internal

Forward Range header so audio playback can scrub

Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...

kamo·6mo ago
FixKlusterServices

Rewrite /etc/odbc.ini to point at $MARIADB_HOST on every boot

The escomputers/freepbx:17 image bakes /etc/odbc.ini with Server=db (the docker-compose link target). On this Kubernetes deployment MariaDB lives at \$MARIADB_H...

Kamo·6mo ago
FixVOIPService

Resolve member→extension before VM/CDR provider lookup

CallController was passing memberId where FreePBX (and other PBX-style providers) expect an extension number — voicemail listing returned empty because no PBX e...

Kamo·6mo ago
FixSecurityService

Auto-asignează primul scaun, gratuit ca podea, mai larg org invalidare

BillingSetupService activează acum primul slot de licență deschisă pentru creator atunci când însămânțarea unui abonament sub-org (și același lucru pentru promo...

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