KamoCRM

Live Change Log

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

18,787
Total Changes
6,772
Features
5,665
Fixes
30
Projects
Filter by project
All Projects18,787AIService286APIService179BillingService166ConversionService121DaemonService150DocsService275ESigService101EmailService649InitializerService349KBService162KlusterServices775MCPGatewayService278MediaService627RAGService79SecurityService2,040TranslateService62VOIPService266VectorService11kamo-apps29kamo-asterisk-support29kamo-capcha17kamo-capcha-widget4kamo-internal8,847kamo-login346kamo-marketing642kamo-nowww20kamo-register216kamo-shared-library1,875kamo-signer-monorepo71kamolos115
Filter by type
All TypesBuild23CI527Chore796Docs3,290Feature6,772Fix5,665Other1,007Performance174Refactor284Revert23Style45Test180Upgrade1
April 21, 2026
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
FeatureSecurityService

Add GET /branch-types/creatable and /{id}/usages endpoints

/creatable returns branch types filtered by the caller's creator-type (OWNERS/TEAM_MEMBERS/MEMBERS) via AppliedModelEnforcementService. /{id}/usages returns th...

Kamo·6mo ago
FixSecurityService

Use correct session key 'memberID' instead of 'MID'

KSessionService stores member ID under key 'memberID' but both **************** and OrganizationController were reading session.get("MID") which always returned...

Kamo·6mo ago
FixSecurityService

Exclude master model from models list; add debug log to child-org creation check

SecurityModelController now filters out the org's master model (identified by org.getMasterModelID()) from the /api/security/models response — it is managed exc...

Kamo·6mo ago
FixSecurityService

Read session rights as List<String> names, not CSV of integer IDs

Session rights are stored as a JSON array of RoleRightType name strings. Both **************** and OrganizationController were casting them to String (causing C...

Kamo·6mo ago
April 19, 2026
FeatureSecurityService

Add GET /branch-types/creatable endpoint with creator-type filtering

Returns only the branch types the calling member is permitted to create a child org under, based on their OWNERS/TEAM_MEMBERS/MEMBERS classification against the...

Kamo·6mo ago
FeatureSecurityService

Gate /network child-org creation by right + member-type applicability

Wires the applied-security-model child-org creation gate end-to-end: - SecurityModelController + MasterModelController round-trip the three new apply-to flag...

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