KamoCRM

Live Change Log

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

17,407
Total Changes
5,922
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,407AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService593RAGService79SecurityService1,833TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,331kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,641kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,922Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
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
ChoreKlusterServices

Remove play from SUBDOMAINS list

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
Chorekamo-marketing

Update locale translations and hash [skip ci]

Kamo CI·6mo ago
Chorekamo-marketing

Remove kamo-capcha-widget node_modules from repo

Drop tracked files under **************** so the tree matches a clean install (dependencies belong in package lock, not git).

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

Trigger CI/CD rebuild

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
FixInitializerService

Drop stale CHECK constraints on default-role-rights enum columns

Hibernate auto-generates CHECK (column IN ('VAL1', 'VAL2', ...)) constraints on CREATE TABLE for @Enumerated(EnumType.STRING) columns, freezing the enum's value...

Kamo·6mo ago
FixInitializerService

Add missing unique constraints for role-right upserts

**************** + syncSecurityModelRoleRights use `ON CONFLICT (role_id, right_type) DO NOTHING` and `ON CONFLICT (default_role_id, right_type) DO NOTHING`, wh...

Kamo·6mo ago
Fixkamo-shared-library

Add unique constraint on (role_id, right_type) in OrgRoleRight

Required for ON CONFLICT DO NOTHING in **************** Without this constraint, the sync query fails with "no unique or exclusion constraint matching the ON CO...

Kamo·6mo ago
Chorekamo-register

Remove deprecated OrganizationType enum

The enum is being retired — identification of the platform-owner org is now driven by the new Organization.isTopLevel flag, and the remaining values (CRM_CLIENT...

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

Stop overwriting member avatar with logged-in user's avatar on profile view

fetchAvatars fetched /api/security/avatars (no memberID scope — always returns the logged-in user's avatars) and called setActiveAvatar, clobbering the correct ...

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

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