KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
April 23, 2026
FixSecurityService

Return only team members from by-department endpoint

Interaction Center should list TeamMember rows, not base Member records.

Kamo·5mo ago
FeatureSecurityService

Interaction Center member line uses job titles

Replace RBAC role title with jobTitleOfficial, fallback to JobTitle catalog title for TeamMember, and the label Member for base Member records in the by-departm...

Kamo·5mo ago
FixSecurityService

Apply subscription gate to app routes and feature API

AppAvailabilityInterceptor now always uses isAppEffectivelyEnabled so FORCE_ENABLED respects subscription. FeatureController serializes enabled from the same ga...

Kamo·5mo ago
April 22, 2026
FixSecurityService

Harden default template copy for org provisioning

Use explicit source prefix for destination keys, skip S3 folder markers, and fail fast when the template prefix is empty so silent partial copies do not reach g...

Kamo·5mo ago
FixSecurityService

Include teamMember owner flag in *** for platform admin UI

Store teamMember { memberId, isOrganizationOwner } in Redis session at login so kamo-internal hasPlatformAdminAccess can satisfy the top-level org owner path. E...

Kamo·5mo ago
April 21, 2026
FixSecurityService

Drop mail from required DNS CNAME aliases

Remove mail from KnownAliases so verify-dns and onboarding no longer require mail.example.com; new custom domains also skip auto-creating the mail child alias.

Kamo·5mo ago
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·5mo 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·5mo 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·5mo 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·5mo 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·5mo ago
FixSecurityService

Mint missing ownership TXT token on read

Kamo·5mo 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·5mo 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·5mo 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·5mo 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·5mo 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·5mo 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·5mo 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·5mo 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·5mo 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·5mo ago
ChoreSecurityService

Trigger CI/CD rebuild

Kamo·5mo 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·5mo 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