KamoCRM

Live Change Log

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

18,873
Total Changes
6,816
Features
5,696
Fixes
30
Projects
Filter by project
All Projects18,873AIService287APIService179BillingService166ConversionService121DaemonService152DocsService275ESigService103EmailService651InitializerService350KBService163KlusterServices778MCPGatewayService280MediaService629RAGService79SecurityService2,060TranslateService62VOIPService266VectorService11kamo-apps29kamo-asterisk-support29kamo-capcha17kamo-capcha-widget4kamo-internal8,878kamo-login346kamo-marketing642kamo-nowww20kamo-register216kamo-shared-library1,892kamo-signer-monorepo73kamolos115
Filter by type
All TypesBuild23CI528Chore798Docs3,294Feature6,816Fix5,696Other1,007Performance175Refactor286Revert23Style45Test181Upgrade1
April 21, 2026
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
Fixkamo-internal

Handle provision-theme HTTP errors and reset provisioning UI

Await POST /provision-theme after branding and background saves; on non-202 show the API error and clear the panel. Increment themeProvisionSession for backgrou...

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
Fixkamo-internal

Connect STOMP before POST to avoid lost progress

WebSocket was only started when provisioning became true, while provision-theme fired in the same turn; async backend could publish before STOMP subscribed. Con...

kamo·6mo ago
FixMediaService

Relay theme provision from core NATS

Match SecurityService core publish: subscribe with Dispatcher on security.theme.provision.* instead of JetStream (stream only covers chat).

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
Fixkamo-internal

Use string org IDs for security org API and theme WS

getOrgId() coerced orgID with Number(), corrupting int64 Cockroach IDs in /api/security/org/{id}/* URLs (404/failed saves). Add getOrgIdString(), use it in Labe...

kamo·6mo ago
Fixkamo-internal

Restore Modify DNS for current org owners

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
Fixkamo-internal

Normalize JSON Content-Type and surface Spring error fields

Force a single application/json header for JSON proxy bodies; org route always sets it. Map Problem Details title/detail in createOrganization errors.

kamo·6mo ago
FixAPIService

Set application/json for JSON bodies forwarded to SecurityService

RestTemplate to upstream could leave Content-Type incompatible with Spring @RequestBody, causing 415. After reading the raw body, force APPLICATION_JSON when th...

Kamo·6mo ago
Fixkamo-internal

Ensure JSON Content-Type when proxying to SecurityService

Organization creation returned 415 Unsupported Media Type because upstream Spring expects application/json for @RequestBody. Node fetch could omit or default Co...

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

Hide Enter for org matching session org id

kamo·6mo ago
Fixkamo-internal

Compare member IDs as strings for self-check and redirect

User-info API returns memberID as string to preserve int64 precision. isSelf used Number() and strict equality with mixed types, so viewing your own /settings/m...

kamo·6mo ago
Fixkamo-internal

Repair TicketChat real-time updates after load race

Defer STOMP subscription until initial message fetch finishes so setMessages from the API cannot wipe messages delivered during load. Clear messages when sessio...

kamo·6mo ago
Fixkamo-internal

Hide deprecated play (and app/media) with case-insensitive matching

- Lowercase statusMap keys and lookups so verification aligns with API casing - Treat hidden infra labels case-insensitively - Strip deprecated labels from effe...

kamo·6mo ago
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
Fixkamo-internal

Security role save for locked roles and clearer API errors

- When isAllowEditSecurity is false, omit rights and securityModelIds from the PUT body so SecurityService accepts metadata-only updates (session timeout, d...

kamo·6mo ago
Fixkamo-internal

Proxy PATCH membership-type to SecurityService

The member profile UI called **************** but no App Router handler existed, so Next returned HTML 404 and the client showed Unknown error after failed JSON...

kamo·6mo ago
Fixkamo-shared-library

Persist RoleRightType by stable getId() instead of ordinal

Hibernate @Enumerated(EnumType.ORDINAL) writes/reads the declaration-index of the enum. When a RoleRightType value is removed (e.g. MANAGE_USERS, id=19), every ...

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