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 20, 2026
Featurekamo-marketing

Show live state with changelog link and daily count

Replace preview countdown and signup copy with a compact "Now LIVE" callout, keep the changelog link, and always show today’s change count from the API after it...

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

Add Platform Administration settings — org plan grants, events, plan catalog

- New pages under /settings/platform (guarded by hasPlatformAdminAccess): - /organizations — list every org, grant/modify/revoke COMP plans with reasons - /...

kamo·6mo ago
FeatureBillingService

Add PlatformAdmin controller + service for comp plan grants

- PlatformAdminController at /api/billing/platform (class-level @PlatformAdminOnly) - GET /orgs, GET /orgs/{orgId} - POST /orgs/{orgId}/grants, PATCH|DELET...

Kamo·6mo ago
FeatureInitializerService

Seed Organization.isTopLevel for kamocrm and OWNER_UNLIMITED self-comp plan

- DataLoader: drop OrganizationType arg from createOrg, set isTopLevel=true on kamocrm - KamoCRMAgeReqUpdateRunner + test: match on IS_TOP_LEVEL = TRUE instead ...

Kamo·6mo ago
Featurekamo-shared-library

Add Organization.isTopLevel, PaymentMethod.COMP, COMP_* event types; remove OrganizationType enum

- Organization: replace dead `type` field with `isTopLevel` flag for platform-owner identification - PaymentMethod: add COMP for complimentary platform-admin gr...

Kamo·6mo ago
Featurekamo-shared-library

Add orgOriginal field to User to track registration org

Kamo·6mo ago
Featurekamo-internal

Member-requestor support rights gating and dual-mode ticket view

- NavTop: show SupportButton for any support right (agent or member) - SupportButton: gate each dropdown item by right — Create/View Tickets, Request Webinar,...

kamo·6mo ago
Featurekamo-shared-library

Add member-requestor support rights (133-136)

Adds four new SUPPORT-scoped rights for non-agent members: - **************** (133) - CREATE_SUPPORT_TICKET (134) - REQUEST_WEBINAR (135) - VIEW_MY_SCHEDULED_WE...

Kamo·6mo ago
Featurekamo-internal

Add Sync Rights button to SecurityRoleManager for top-level orgs

Button is only visible when organization.hasParent is false. Calls POST /api/security/roles/sync-rights then reloads the roles table.

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
Featurekamo-shared-library

Make role rights DTOs enum-driven and add security model rights sync

- SecurityRoleDTO.fromOrgRole(): enumerate all RoleRightType values with DB settings as lookup — new rights appear with NOT_SPECIFIED automatically - ********...

Kamo·6mo ago
Featurekamo-shared-library

Add ALLOW_PROMOTING_MEMBERS right (id 132)

Kamo·6mo ago
Featurekamo-shared-library

Promote POS and ESIG from PLANNING to COMPLETED stage

Kamo·6mo ago
Featurekamo-internal

Show city and subdivision in ticket visitor geo row

Display as "City, Region, Country (IP)" — nulls are filtered so it degrades gracefully when only country data is available

kamo·6mo ago
FeatureMediaService

Expose city and subdivision in visitor geo lookup

- Extend GeoResult record with city and subdivision fields - Switch SupportTicketService.toDTO() to use GeoLookupService (IP-level lookup) instead of country-...

Kamo·6mo ago
Featurekamo-shared-library

Add visitorCity and visitorSubdivision to SupportTicketDTO

Kamo·6mo ago
Featurekamo-internal

Add tab URL params to /account page for deep linking and refresh persistence

Tab state is now synced to **************** so links to specific tabs work and the correct tab stays selected on page refresh.

kamo·6mo ago
Featurekamo-internal

Show visitor flag, country, and IP in ticket header

- Add visitorIpAddress, visitorCountryCode, visitorCountryName to SupportTicketDTO type - Render flag emoji + country name + IP address row in TicketHeader for ...

kamo·6mo ago
Featurekamo-shared-library

Add visitor geo fields to SupportTicketDTO

Kamo·6mo ago
FeatureMediaService

Show visitor flag and location in support ticket header

- Inject PublicChatVisitorRepository and GeoLiteLocationRepository into SupportTicketService - Populate visitorIpAddress, visitorCountryCode, visitorCountryName...

Kamo·6mo ago
Featurekamo-marketing

Replace native WebSocket with STOMP/SockJS in LiveSupportPanel

- Add @stomp/stompjs and sockjs-client packages - Connect to media.{domain}/ws/public-chat via SockJS+STOMP instead of raw WebSocket to api.{domain} which was...

Kamo·6mo ago
FeatureMediaService

Fix end-to-end public chat real-time via STOMP/NATS

- Remove internalAuth requirement from PublicChatWebSocketInterceptor so visitors can connect directly using only their sessionToken - Include visitor display...

Kamo·6mo ago
Featurekamo-internal

Auto-open support ticket popup on NEW_TICKET NATS notification

When a new support ticket arrives, the backend now sends a NEW_TICKET STOMP message in addition to PENDING_COUNT. The SupportCountContext handles it by dispatch...

kamo·6mo ago
Featurekamo-marketing

Add /contact-confirmed page with animated hero, timeline, and CTAs

Replace inline success message on contact form with a dedicated premium confirmation page: animated SVG checkmark with particle burst, 'What Happens Next' 3-ste...

Kamo·6mo ago
Featurekamo-internal

Redesign LabelManager — inline section editing, fix broken save, read-only default

Rewrites LabelManager.tsx with per-section read/edit pattern. Fixes the broken save button (validateForm blocked saves because contact/company fields were never...

kamo·6mo ago
FeatureEmailService

Add KamoMail domain validator to block cross-tenant email addresses

Introduces KamoMailDomainValidator component that checks, at service layer, whether the submitted email domain matches the org's verified default domain when Ka...

Kamo·6mo ago
Featurekamo-internal

Enforce KamoMail domain restriction on mailbox, alias, and shared mailbox creation

When KamoMail is the email provider, members can only create mailboxes, aliases, and shared mailboxes using the org's verified default domain. Enforcement at th...

kamo·6mo ago
FeatureConversionService

Add image resize and favicon generation endpoints

Kamo·6mo ago
FeatureInitializerService

Add migration runner for logo_full_ext column on orgs

Kamo·6mo ago
Featurekamo-shared-library

Add findByBranchTypeID derived query to OrganizationRepository

Supports the new /branch-types/{id}/usages endpoint in SecurityService for checking whether a branch type has active child orgs before deletion.

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