KamoCRM

Live Change Log

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

18,399
Total Changes
6,534
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,399AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService621InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,996TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,694kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,826kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,534Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
April 21, 2026
FixSecurityService

Correct applied-model source and normalize compliance in API

Use resolver resolution for BRANCH_TYPE vs MASTER instead of inferring from branchTypeID alone. Normalize FALSE/TRUE compliance literals in applied-model settin...

Kamo·6mo ago
FeatureSecurityService

ThemeRevision in config and cache headers on theme assets

Emit themeRevision (epoch ms) in config.json on each write; set Cache-Control on config, globals.css, and site.webmanifest uploads so edge caches revalidate.

Kamo·6mo ago
FixSecurityService

Write globals.css before cleanup; run cleanup async

Reorder provisionUpdate so writeConfigFiles (colors, config, manifest) runs before background file cleanup. Reload org from DB for fresh colors. Run cleanupExt...

Kamo·6mo ago
FixSecurityService

Apply committed org colors to MinIO globals.css

Reload Organization from the DB at the start of async provision so writeConfigFiles sees colors saved by PATCH /colors (controller snapshot could be stale). Nul...

Kamo·6mo ago
FixSecurityService

Mark DNS-verified custom domains as isDefault in domain API

Previously only *.kamocrm.com subdomains were marked isDefault, so orgs with a verified custom apex domain (e.g. kamocrm.com) always got defaultDomain=null and ...

Kamo·6mo ago
FixSecurityService

Mint missing ownership TXT token on read

Kamo·6mo ago
FixSecurityService

Allow branding when user is org owner TeamMember

Theme provisioning and logo/background uploads only checked Organization.owner FK; the app UI treats organization owner as TeamMember.isOrganizationOwner, which...

Kamo·6mo ago
FixSecurityService

Clear user and member FKs before deleting avatar row

Deleting an avatar failed with a DB constraint when it was still the active user avatar or a member-specific override, which matched broken MinIO blobs where us...

Kamo·6mo ago
RefactorSecurityService

Merge default template without wiping org folder

Full provision no longer deletes the org prefix before copy. Copy from public/default overwrites matching keys only; other objects under the org folder remain. ...

Kamo·6mo ago
FixSecurityService

Resolve theme folder host without strict DNS verification

Theme provisioning required isDnsVerified for every domain, so orgs using only the default kamocrm.com subdomain never started async work (400, no STOMP). Fall ...

Kamo·6mo ago
FixSecurityService

Publish theme provision progress on core NATS

JetStream CHAT_MESSAGES stream is configured for chat.> only, so publishes to **************** failed stream validation and the UI saw no progress. Use Connecti...

Kamo·6mo ago
FixSecurityService

Parse create-org JSON without @RequestBody to avoid 415

Spring returns Unsupported Media Type when Content-Type is missing or not accepted for @RequestBody. Read bytes and use ObjectMapper instead so APIService/Next ...

Kamo·6mo ago
FeatureSecurityService

Expose ATF compliance policies on models and creatable branch types

- OrganizationController applies model enforcement before age assertions - SecurityModelController and MasterModelController pass policy fields - BranchTypeCont...

Kamo·6mo ago
April 20, 2026
FixSecurityService

Read session rights as list or legacy CSV for member endpoints

KSessionService and SecurityRoleController store rights as List<String> of RoleRightType names. MemberSecurityController cast to String and split on comma, caus...

Kamo·6mo ago
FixSecurityService

Avoid transaction-poisoning DDL and harden multi-pod races

The previous self-heal put DDL inside a @Transactional syncAll(). When an ALTER TABLE ADD CONSTRAINT fired on an existing constraint (normal case after first bo...

Kamo·6mo ago
ChoreSecurityService

Trigger CI/CD rebuild

Kamo·6mo ago
FeatureSecurityService

Make RoleRightsSyncService fully self-healing on every boot

Adding or removing a RoleRightType must never again require running KamoInitializerService. syncAll() now runs three phases on every startup: 1. Heal constrain...

Kamo·6mo ago
FeatureSecurityService

Extract RoleRightsSyncService and add sync-rights endpoint

- RoleRightsSyncService: centralizes role rights sync logic for both OrgRole and **************** tables; startup and on-demand - DataLoader: delegates to Rol...

Kamo·6mo ago
FixSecurityService

Use getOrganizationByIdWithFeatures in AppAvailabilityInterceptor

Resolves LazyInitializationException on /api/security/leads and all other CRM/POS-gated paths. The interceptor called org.getFeatures() after the transaction cl...

Kamo·6mo ago
FixSecurityService

Resolve Members tab showing empty due to Hibernate TYPE() base-class issue

Hibernate's TYPE(m) = :type JPQL filter returns 0 results when the bound parameter is the base Member class (JOINED inheritance). This affects the members-subsc...

Kamo·6mo ago
OtherSecurityService

Enable Hibernate SQL logging to diagnose members query returning 0

Temporarily enabled org.hibernate.SQL=DEBUG to see what SQL the TYPE() JPQL query generates for the members-subscribers endpoint.

Kamo·6mo ago
OtherSecurityService

Add diagnostic logging to getMembersAndSubscribers endpoint

Logs orgId, query result count, and per-member isActive status to help diagnose why Members tab shows empty list.

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