KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
April 18, 2026
RefactorInitializerService

Tighten KamoCRMAgeReqUpdateRunner per review

- Restore Javadoc paragraph explaining @Order(10) rationale. - Test now references the UPDATE_SQL constant directly instead of duplicating the SQL string, so ...

Kamo·6mo ago
Refactorkamo-marketing

Honest marketing — align pages to actual platform capabilities

Full review of marketing pages against actual KamoCRM product capabilities. Removed fabricated claims about features not built today, and repositioned industry-...

Kamo·6mo ago
April 17, 2026
Refactorkamo-internal

Call BillingService directly via k8s DNS instead of through APIService

Next.js server-side proxy now calls BillingService at **************** directly, skipping the unnecessary hop through APIService. Uses BILLING_SERVICE_URL env v...

kamo·6mo ago
April 16, 2026
April 13, 2026
Refactorkamo-internal

Add memberType to user info, rename templateName to docDescription in template settings store

Add memberType field from Member entity discriminator column to the user-info API response and useUserInfo hook. Rename templateName to docDescription in templa...

kamo·6mo ago
April 12, 2026
Refactorkamo-internal

Migrate all imaging API routes from SecurityService to ConversionService/DocsService

Upload routes now call ConversionService directly via CONVERSION_SERVICE_URL: - POST /api/imaging/upload → /api/conversion/imaging/upload - POST /api/imaging/te...

kamo·6mo ago
RefactorSecurityService

Remove ImagingController and beans/imaging — moved to ConversionService and DocsService

Upload endpoints now live in ConversionService at /api/conversion/imaging/*. All management and download endpoints now live in DocsService at /api/docs/imaging/...

Kamo·6mo ago
RefactorDaemonService

Delegate thumbnail generation to ConversionService, remove PDFBox dependency

ThumbnailGenerationJob now POSTs the converted PDF to ConversionService **************** unzips the response, and stores each thumb_p{n}.png in MinIO. PDFBox re...

Kamo·6mo ago
RefactorSecurityService

Delegate thumbnail generation to ConversionService, remove PDFBox dependency

generateAndStoreThumbnails now POSTs the converted PDF to ConversionService **************** unzips the response, stores each thumb_p{n}.png in MinIO, and publi...

Kamo·6mo ago
April 11, 2026
Refactorkamo-internal

Remove JSON parsing workarounds for subscription plan ID arrays

Backend now returns proper arrays instead of JSON strings, so the try/parse/catch fallback logic is no longer needed in add-on, bundle, and promotion grid cell ...

kamo·6mo ago
RefactorInitializerService

Use List<String> instead of manual JSON strings for promotion plan/cycle IDs

Update KamoCRMPricingLoader to use List.of() for applicablePlanIds and applicableBillingCycles, matching the shared library's migration from JSON strings to ent...

Kamo·6mo ago
Refactorkamo-shared-library

Migrate subscription JSON fields to entity-based @ManyToMany relationships

Replace jsonb string columns (compatiblePlanIds, includedInPlanIds, applicablePlanIds, applicableBillingCycles) with proper JPA @ManyToMany join tables and @Ele...

Kamo·6mo ago
April 10, 2026
April 4, 2026
Refactorkamo-internal

Redesign webinar settings from dialog-based to sub-page navigation

Replaces popup dialogs and separate accordion sections with a two-level inline navigation flow: - Level 1: clean webinar types table with click-to-navigate - Le...

kamo·6mo ago
Refactorkamo-internal

Separate support settings from member-level support page into dedicated settings page

- Remove Settings tab from /support page, keeping only Tickets and Analytics - Add sub-tabs to Analytics: Overview and Status & Response Times (moved from setti...

kamo·6mo ago
RefactorSecurityService

Account endpoints use direct contact fields, no User required

POST /customers now saves firstName, lastName, email, phone, address directly on Account. PUT /customers/{uid} updates all direct fields. Display name, email, p...

Kamo·6mo ago
April 3, 2026
Refactorkamo-internal

Separate AccountManager from TeamMemberManager on /account page

3 page-level tabs: Clients & Customers, Members, Team Members. - Tab 0: new AccountManager component — standalone, fetches real account data from accountsApi,...

kamo·6mo ago
RefactorSecurityService

Update customer endpoints to use Account (Long uid), remove address endpoints

Customer/group @PathVariable changed from UUID to Long to match Account entity. Address endpoints removed — addresses come from Account's primaryMember (Member ...

Kamo·6mo ago
Refactorkamo-shared-library

Replace RetailCustomer with Account-based customer model

Account.java was already the commerce customer entity but was too minimal. RetailCustomer duplicated this concept. This commit: - Enhances Account with commerc...

Kamo·6mo ago
Refactorkamo-marketing

Standardize brand naming across site — Kamo → KamoCRM / KamoCRM Inc.

Legal pages (terms, privacy, GDPR, footer copyrights) now use "KamoCRM Inc." for the corporate entity. Product/brand references across marketing copy, metadata,...

Kamo·6mo ago
Refactorkamo-internal

Migrate all pipeline components from commerceMarketApi to commerceApi

Update 10 files to import directly from commerceApi instead of the deleted commerceMarketApi. Remove the compatibility shim and dead CommerceMarketManager compo...

kamo·6mo ago
March 29, 2026
Refactorkamo-internal

Rewrite HexHead placement system with deterministic layout engine

Replaces the buggy collision-avoidance system (spiralSearch, resolveCollisions, flyToHomeRow, dock/group RAF loops) with a single deterministic reflow() functio...

kamo·6mo ago
March 28, 2026
RefactorInitializerService

Strip SchemaCleanupRunner to only post-Hibernate fixups

Hibernate ddl-auto: update handles all table/column creation from JPA entities. Removed all redundant CREATE TABLE/ADD COLUMN statements that duplicated what Hi...

Kamo·6mo ago
March 26, 2026
Refactorkamo-internal

Split mailboxes tab into sub-tabs for primary, aliases, shared

Primary Mailboxes, Email Aliases, and Shared Mailboxes are now each under their own sub-tab within the Mailboxes settings page, matching the existing sub-tab pa...

kamo·7mo ago
March 23, 2026
RefactorSecurityService

Remove notes code, moved to KBService

Notes management (controller, service, encryption) has been relocated to KBService where it better aligns with knowledge and content management responsibilities...

Kamo·7mo ago
March 21, 2026
Refactorkamo-internal

Move Knowledge Base from top nav to sidebar as "KB"

kamo·7mo ago
March 20, 2026
Refactorkamo-internal

Update internal entity ID types from number to string for UUID migration

Updates TypeScript types, hooks, and components to use string IDs for entities converted to UUID on the backend. User-facing entity IDs (User, Organization, Mem...

kamo·7mo ago
RefactorMCPGatewayService

Update MCP server config ID references from Long to UUID

Kamo·7mo ago
RefactorRAGService

Update version ID references from Long to UUID

Article IDs remain Long. Version IDs now use UUID.

Kamo·7mo ago
RefactorKBService

Update KB media and version ID references from Long to UUID

Article IDs (KbArticle) remain Long. Version, media, pin, and review IDs now use UUID for improved CockroachDB write performance.

Kamo·7mo ago
RefactorAIService

Update AI entity ID references from Long to UUID

Updates all controllers, services, and WebSocket handler to use UUID for AI entity IDs (providers, models, sessions, messages, folders, policies, MCP configs). ...

Kamo·7mo ago
RefactorSecurityService

Update controllers and services for UUID entity IDs

Updates all controller @PathVariable and service method signatures to use UUID instead of Long for internal entity IDs (avatars, backgrounds, roles, departments...

Kamo·7mo ago
Refactorkamo-shared-library

Convert internal entity IDs from Long/unique_rowid() to UUID/gen_random_uuid()

Improves CockroachDB write performance by using randomly-distributed UUIDs for internal entity primary keys instead of sequential unique_rowid() values. User-fa...

Kamo·7mo ago
Refactorkamo-internal

Replace Add Source with Manage Contact Sources dialog

- Rename AddSourceDialog → ManageSourcesDialog with full CRUD (list existing sources with status + remove, plus inline add form) - Move "Manage Contact Source...

kamo·7mo ago
March 19, 2026
Refactorkamo-internal

Remove Client ID and Secret fields from RingCentral UI

These are platform-level credentials set once in the K8s secret. Customers only need to provide their JWT Key and main phone number.

kamo·7mo ago
RefactorVOIPService

Read RingCentral client-id/secret from platform config, not per-org DB

Client ID and Secret identify the Kamo app on RingCentral's platform — they are shared across all orgs. Inject them from Spring Boot properties (backed by the K...

Kamo·7mo ago
Refactorkamo-shared-library

Remove clientId/clientSecret from VoipProviderConfig

These are platform-level credentials shared across all orgs. Only jwtKey and mainPhoneNumber are per-org.

Kamo·7mo ago
March 18, 2026

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