KamoCRM

Live Change Log

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

17,650
Total Changes
6,071
Features
5,339
Fixes
30
Projects
Filter by project
All Projects17,650AIService260APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService586InitializerService329KBService151KlusterServices744MCPGatewayService261MediaService604RAGService79SecurityService1,872TranslateService62VOIPService250VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,411kamo-login340kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,678kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,257Feature6,071Fix5,339Other998Performance165Refactor278Revert23Style42Test162Upgrade1
April 18, 2026
Fixkamo-login

Impostare Host/X-Forwarded-Host così APIService risolve il corretto org

APIService sovrascrive X-Forwarded-Host con request.getServerName(), che legge dall'intestazione Host. Senza un intestazione Host esplicita il servizio interno ...

Kamo·6mo ago
FixSecurityService

Correct EmailService URL port in configmap (4203 -> 80)

EmailService K8s service exposes port 80, not 4203. Verification emails were timing out on every registration attempt.

Kamo·6mo ago
FixSecurityService

Bypass JPA org lookup to avoid Hibernate cascade flush error

**************** triggers **************** which causes a Hibernate auto-flush. That flush fails because Organization.features was previously replaced with a pl...

Kamo·6mo ago
Fixkamo-shared-library

Mutate presenta la collezione in loco per evitare cascade orfano Errore di ritorno

Calling org.setFeatures (newList) sostituisce il persistente tracciato dall'ibernato raccolta, causando JpaSystemException quando qualsiasi query attiva automat...

Kamo·6mo ago
FixSecurityService

Use getReferenceById to avoid cascade orphanRemoval flush error on registration

Loading Organization via findById inside @Transactional caused Hibernate to detect the features collection was de-referenced during auto-flush, throwing JpaSyst...

Kamo·6mo ago
Fixkamo-login

Invia la verifica utilizzando e-mail non userId, avanti X-Forwarded-Host

SecurityService /register /resend-verification si aspetta e-mail nel corpo, non userId (che la risposta di errore di login non include mai). Anche in avanti X-F...

Kamo·6mo ago
FixEmailService

Add dao.repositories to JPA scan so EmailTemplateRepository is found

Same pattern as KamoInitializerService — explicit basePackages overrides default scanning and must include every package that has repositories.

Kamo·6mo ago
Fixkamo-register

Passare il corpo di errore a monte tramite proxy di sicurezza invece di un messaggio generico

Precedentemente restituito {error: "Upstream error"} su non-2xx, perdendo il reale messaggio di errore da SecurityService. Ora inoltra il codice di stato e il c...

Kamo·6mo ago
FixSecurityService

Align registration field names and response shape with frontend contract

Frontend sends nameFirst/nameLast but controller read firstName/lastName, causing 400 "First name is required". Success response now returns {status, userId, al...

Kamo·6mo ago
Fixkamo-register

Prevenire stale ageReqType cache da mostrare il controllo dell'età in modo non corretto

- Org route: ridurre Redis TTL da 24h a 5min e aggiungere etàReqTypeMember al rilevamento delle macchie in modo che i campi di sicurezza rimangano freschi dopo ...

Kamo·6mo ago
FixSecurityService

Add SecurityService and dao.repositories to EnableJpaRepositories scan

UserPhoneLookupRepository in recovery package was not picked up because EnableJpaRepositories only listed dao.repos and commerce. Added the SecurityService base...

Kamo·6mo ago
Fixkamo-register

Imposta il titolo della scheda del browser su 'Register - {org name}'

DynamicMetaLoader ora chiama utilizzare il documento ThemeConfig e aggiornamenti. titolo a 'Register - {org.title}' una volta che l'org carica. Fallback statico...

Kamo·6mo ago
Fixkamo-register

Risolvere gli errori TS dai passaggi utilizzati prima della dichiarazione e del cast in stile Capcha

Muovetevi! useMemos sopra l'usoEffetti che dipende da loro; importare CSSVariables tipo e usarlo per lo stile Capcha-widget prop.

Kamo·6mo ago
FixInitializerService

Add dao.repositories to EnableJpaRepositories scan

EmailTemplateRepository lives under dao.repositories.email, not dao.repos, so it was not picked up as a Spring bean.

Kamo·6mo ago
Fixkamo-shared-library

Aggiungere DEFAULT falso alla definizione della colonna email verified

Lo schema migratorio di Hibernate genera ALTER TABLE senza un default, fallire sui tavoli con righe esistenti. colonnaDefinizione lo costringe a includere i fal...

Kamo·6mo ago
FixESigService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixTranslateService

Bump kamo-shared-library a 1.4.0

Kamo·6mo ago
FixRAGService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixMediaService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixMCPGatewayService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixKBService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixEmailService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixDocsService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixDaemonService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixConversionService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixBillingService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
FixAIService

Bump kamo-shared-library a 1.4.0

Kamo·6mo ago
FixSecurityService

Resolve duplicate emailTemplateServiceClient bean conflict

**************** and **************** were identical @Components with the same default bean name, causing **************** at startup. Delete the duplicate in r...

Kamo·6mo ago
FixVOIPService

Bump kamo-shared-library to 1.4.0

Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...

Kamo·6mo ago
Fixkamo-register

Applicare la correttezza e l'implementazione SP6 correzioni di qualità

C1: utilizzare NEXT PUBLIC H*** SITE KEY env var invece di segnaposto hardcoded C2: cambiare RegisterResponse.userId e tutti i param API dal numero alla stringa...

Kamo·6mo ago
FixSecurityService

Address 4 code-review findings in registration and login paths

- Hide raw exception message in /register 500 path; log instead - Fail-closed (503) on email-verified DB check failure in login - verifyEmailToken throws if use...

Kamo·6mo ago
FixSecurityService

Append Z to dateCommitted so JS parses it as UTC

LocalDateTime.toString() produces no timezone designator, causing JavaScript's new Date() to treat the UTC value as local time and display timestamps 7-8 hours ...

Kamo·6mo ago
FixSecurityService

Convert PT midnight cutoff to UTC for today-count query

Commits are stored in UTC but the cutoff was a naive LocalDateTime in PT, causing yesterday-evening PT commits (00:00–06:59 UTC) to be counted as today.

Kamo·6mo ago
FixEmailService

Rinominare mailboxId→id e providerStatus→status nella risposta della mailbox

Allineare i nomi dei campi con le aspettative di frontend per gli elenchi delle caselle di posta dei membri.

Kamo·6mo ago
Fixkamo-marketing

Sostituisci tutte le istanze logo CSS-filter con SVG bianco

Navigazione, SubNavigazione, Footer, SubFoooter e Preloader tutti utilizzati lo stesso filtro rotto luminosità-0 invert pattern. Sostituito con logo-full-white....

Kamo·6mo ago
Fixkamo-marketing

Utilizzare il logo SVG bianco nel piè di pagina invece del filtro CSS

Stessa correzione del nav — filtro CSS su img all'interno dello sfondo-filtro è inaffidabile su iOS Safari.

Kamo·6mo ago
Fixkamo-marketing

Protezione colore-schema con !importante contro il tema CSS override

DynamicMetaLoader può iniettare CSS remoto che vince la cascata. Aggiunta !importante assicura il colore-schema: il buio non può mai essere superato da fogli di...

Kamo·6mo ago
Fixkamo-marketing

Escludere i collegamenti footer e nav da TouchOptimized min-height

TouchOptimized stava impostando minHeight:44px su tutti gli elementi <a> più brevi 44px, compresi i collegamenti nav footer (~20px alto). Questo ha funzionato d...

Kamo·6mo ago
Fixkamo-marketing

Utilizzare il logo SVG bianco pre-rendered invece del filtro CSS

Il filtro CSS su img all'interno dello sfondo-filtro non è affidabile su iOS Safari. Generare logo-full-white.svg con tutti i file impostati su #ffffffff e cari...

Kamo·6mo ago
Fixkamo-marketing

Lock Tailwind variante modalità dark a base di classe, mai OS media query

Tailwind v4 defaults dark: utilità per rispondere a prefers-color-scheme (preferenze OS). L'override @variant garantisce il buio: le classi si attivano solo qua...

Kamo·6mo ago
Fixkamo-marketing

Utilizzare lo stile del filtro in linea sul link del logo per un rendering bianco affidabile

Le classi di filtro a vento su elementi img sono incoerenti tra i browser mobili. Lo stile inline sull'elemento di ancoraggio garantisce luminosità(0) invert(1)...

Kamo·6mo ago
Fixkamo-marketing

Force dark color-scheme in modo che il browser non applica mai la modalità di rendering della luce

Cambiare da 'solo luce' a 'dark' in globals.css, generareViewport, e il stile elemento html — questo impedisce al browser di rendere SVGs e UI nativo in modalit...

Kamo·6mo ago
Fixkamo-marketing

Evitare il logo da rendering dietro la riga nav su mobile

L'involucro div con il filtro CSS ha creato un nuovo contesto di impilamento in conflitto con lo sfondo-filtro dell'intestazione sui browser mobili, facendo dip...

Kamo·6mo ago
Fixkamo-marketing

Risolvere la barra di scorrimento e la clip mobile su JumpToBar e PreviewBanner

- Aggiungi overflowY: nascosto al contenitore interno JumpToBar per evitare la barra di scorrimento verticale - Consentire il contenuto di PreviewBanner per avv...

Kamo·6mo ago
Fixkamo-marketing

Sostituire spazio-y-4 con il gap flex in linea su liste di collegamento piè di pagina

Tailwind space-y-4 utilizza:where() (specificity 0) che corre con CSS carico su rinfresco duro causando spaziatura verticale inconsistente. In linea stili sono ...

Kamo·6mo ago
FixKlusterServices

Set Traefik externalTrafficPolicy=Local to preserve client IP

With the default "Cluster" policy, kube-proxy SNATs external traffic to the node IP before forwarding to Traefik. That caused Traefik to see the node IP as the ...

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