KamoCRM

Live Change Log

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

17,520
Total Changes
6,001
Features
5,286
Fixes
30
Projects
Filter by project
All Projects17,520AIService253APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService580InitializerService329KBService151KlusterServices741MCPGatewayService251MediaService602RAGService79SecurityService1,850TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,355kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,661kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,255Feature6,001Fix5,286Other994Performance165Refactor278Revert23Style42Test161Upgrade1
April 23, 2026
April 22, 2026
Featurekamo-shared-library

Add findTeamMemberById for reliable TeamMember resolution

Kamo·6mo ago
April 21, 2026
Featurekamo-shared-library

Load branch types with security models by org id

Kamo·6mo ago
Featurekamo-shared-library

Optional Cache-Control on object upload

Used by theme provisioning so globals.css and config.json instruct browsers and proxies to revalidate instead of serving stale cached objects.

Kamo·6mo 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·6mo ago
Featurekamo-shared-library

Add **************** for avatar cleanup

Used when removing an avatar so member overrides referencing the same row can be cleared before delete.

Kamo·6mo ago
Featurekamo-internal

Clear wizard sessionStorage on fresh create via ?fresh=1

Navigate from Network to create with ?fresh=1, strip the query, and use a short-lived lock so React Strict Mode does not restore an old draft before persist run...

kamo·6mo ago
Featurekamo-shared-library

Alcohol/tobacco/firearms compliance policies

- CHILD_ORG_SECURITY_MODELS columns and entity defaults MEMBER_SELECT - DTO and ChildOrgSecurityModelService create/update normalization - AppliedModelEnforceme...

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

Compliance wizard from security model policies

- Branch types API maps alcohol/tobacco/firearms policies into wizard state - Dynamic Compliance step: omit from nav when model fixes all ATF and ages - Age and...

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

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