KamoCRM

Live Change Log

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

18,447
Total Changes
6,575
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,447AIService276APIService179BillingService162ConversionService117DaemonService146DocsService240ESigService93EmailService625InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService621RAGService79SecurityService2,005TranslateService62VOIPService265VectorService11kamo-apps28kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,711kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,836kamo-signer-monorepo58kamolos115
Filter by type
All TypesBuild23CI525Chore794Docs3,287Feature6,575Fix5,540Other1,001Performance174Refactor284Revert23Style45Test175Upgrade1
May 4, 2026
Otherkamo-internal

Translate all 4 webinar files

LeadWebinarsSection, MyWebinarsTab, WebinarScheduleWizard, settings/ WebinarSettingsTab. Uses t() with **************** scheduleWizard,settings}.* keys. Reused ...

kamo·6mo ago
Otherkamo-internal

Translate OrderWizard

42 strings. Uses t() with **************** keys. Reused common.actions/states/fields. Existing tUi placeholder hook preserved alongside new top-level t.

kamo·6mo ago
Otherkamo-internal

Translate ****************

3 files (94 strings). Extracted agreement template defaults (HTML body, sample data, type colors, helper) into a sibling .ts file so the audit no longer flags t...

kamo·6mo ago
Otherkamo-internal

Translate AddOns/Bundles/VolumeDiscounts

3 files (57 strings). Uses t() with **************** bundles,volumeDiscounts}.* keys. Reused common.actions/fields/states.

kamo·6mo ago
Otherkamo-internal

Translate MatrixCell + DashboardCards

Partial start of subscription batch — 2 small files (5 strings): MatrixCell "Unlimited" pill labels in ReadMode and NumericEditor; SubscriptionDashboardCards ti...

kamo·6mo ago
Otherkamo-internal

Translate UI

30 files: leads (BusinessCard/Header/Manager); tools (ai-chat 5 files, calculator 6 files, media-player, message 2 files, sms 2 files); image-to-svg ***********...

kamo·6mo ago
May 3, 2026
Otherkamo-internal

Translate UI strings

27 files: **************** **************** ManageSourcesDialog}; **************** **************** **************** messages/{ConversationListView, ***********...

kamo·6mo ago
Otherkamo-internal

Translate settings features components

12 files in **************** meets: **************** settings tabs. phone: multi/AggregatedTabs **************** and multi/ProvidersTab. docs: AssocConfigPanel,...

kamo·6mo ago
Otherkamo-internal

Translate CRM settings components

11 files in **************** CustomFormManager, FieldMappingInterface, LeadAutoImportManager, LeadManualImportManager, LeadMarketManager, LeadStatusLabelManager...

kamo·6mo ago
Otherkamo-internal

Translate small components subdirs

24 files across **************** **************** hardcoded UI strings now use t() with keys grouped by directory under components.* namespace. SmsChatTab.tsx d...

kamo·6mo ago
Otherkamo-internal

Translate error/loading/not-found pages

Use t() for ERROR badge, headline, subtitle, action buttons, and support link on error.tsx; loading message on loading.tsx; random message and description array...

kamo·6mo ago
Otherkamo-internal

Translate hardcoded UI

commerce (10 files): applications, bookings, commitments, orders, procurement, requests, service, service-requests, signups, subscriptions detail pages. setting...

kamo·6mo ago
May 1, 2026
FeatureKlusterServices

Add pricing@kamocrm.com mailbox and external IMAP NodePort

- New Service mail/dovecot-imap-external (NodePort 30143 -> 143) so IMAP can be reached from outside the cluster on $NODE:30143. - Seed pricing@kamocrm.com in...

Kamo·6mo ago
FixMediaService

Publish NATS CREATE event after transaction commit to fix image attachment race

The NATS message was published inside the @Transactional body, which meant recipients could receive the CREATE event and request the image via /imaging/proxy/{o...

Kamo·6mo ago
FixMediaService

Serialize attachments in WS relay and message history; allow attachment-only sends

Three bugs fixed: 1. ChatSessionSubscriptionManager was building the STOMP messageMap manually and omitting attachments, sourceLanguageId, readMemberId, msg...

Kamo·6mo ago
Fixkamo-shared-library

Add attachments and event fields to ChatMessageDto; ignore unknown fields

ChatMessageDto was missing `attachments`, `readMemberId`, `msgIdLastViewed`, `dateLastViewed`, `addedMemberId`, `objImgId`, `transitMemberId`, and `isJoin` fiel...

Kamo·6mo ago
FixMediaService

Fix NPE in getChatSessions from Map.of() rejecting null nextcoder

java.util.Map.of() throws NullPointerException when nextcoder is null (no more pages). Replace with HashMap that accepts null values. Also wrap entire handler i...

Kamo·6mo ago
Fixkamo-internal

Defects C/D/E — title display name, toolbar layout, header lift

Defect C: Add GET proxy for /sessions/{guid}/members so ChatBox.loadMembers() can populate the SessionMember.name field. ChatTool already uses members[0].name f...

kamo·6mo ago
FeatureMediaService

Add GET /sessions/{guid}/members endpoint with display-name priority

Returns member list with name resolved via usernameAlias → fullName → alias → username, matching the same priority as the chat sessions list. This feeds ChatBox...

Kamo·6mo ago
FixMediaService

Fix upload 500 (missing EmbRecordState) and empty chats tab (Timestamp cast)

Defect A: ChatAttachmentService.upload omitted **************** causing a NOT NULL violation on imgs.is_active. Added the default recordState. Also hardened Cha...

Kamo·6mo ago
FixMediaService

Prefer usernameAlias over User.name in memberDisplayName

Switches display name priority to: Member.usernameAlias → User.name → User.alias → User.username. Also includes the paged query dispatch fix from the previous c...

Kamo·6mo ago
Featurekamo-internal

Derive and dispatch tool window title from session members

Adds onMembersChange callback to ChatBox; ChatTool derives the title (single name for 1-on-1, or '<name> (+N more)' for groups) and dispatches tool:title to upd...

kamo·6mo ago
Refactorkamo-internal

Collapse toolbar, remove ChatHeader, add members intro row

- Delete ChatHeader row from embedded chat; move Add Member icon into unified toolbar - Toolbar: search input on left, VideoCall icon + PersonAdd icon + scroll-...

kamo·6mo ago
Featurekamo-internal

Lift search above tab strip, share query across Members and Chats tabs

Moves the search TextField from MemberList into NavTopPanel above the Tabs. Passes searchQuery as a prop to both MemberList and ChatsList so a single field filt...

kamo·6mo ago
Fixkamo-internal

Show upload error toast in Composer when attachments fail

Catches errors thrown by uploadAll() and renders an MUI Alert above the input row. Root cause of Defect 4 was the missing MinIO bucket (imaging-chat-attachments...

kamo·6mo ago
Fixkamo-internal

Empty Chats tab — frontend already expects {rows} paged shape (no change needed)

The ChatsList component already reads data.rows. Backend fix (shared-lib + MediaService) is the root cause: HAVING CAST(null AS TIMESTAMP) IS NULL did not work ...

kamo·6mo ago
FixMediaService

Use split First/After queries for chat sessions paged endpoint

Addresses empty Chats tab by dispatching to ****************

Kamo·6mo ago
Fixkamo-shared-library

Split findChatSessionsForMemberPaged into First/After to fix empty Chats tab

HAVING CAST(null AS TIMESTAMP) IS NULL did not evaluate as expected in CockroachDB,

Kamo·6mo ago
Fixkamo-internal

Drop redundant chat header buttons; integrate Members/Chats tabs with panel design

ChatHeader had its own minimize/close IconButtons but the chat tool window chrome already provides those affordances — they were duplicated when embedded. ChatH...

kamo·6mo ago
Fixkamo-shared-library

Switch MediaObjTransit to @MapsId derived-identity pattern

@IdClass combined with @Id @OneToOne is not reliably supported in Hibernate 6 — JpaRepository<MediaObjTransit, UUID> initialization fails with "does not define ...

Kamo·6mo ago
Fixkamo-internal

Drop unused @ts-expect-error on streaming fetch body

The `as RequestInit` cast already silences the type error; the directive is redundant under TS strict mode and breaks the production build.

kamo·6mo ago
Fixkamo-shared-library

Add @IdClass for MediaObjTransit so Spring Data JPA can expose its derived ID

Spring Data's metamodel requires @IdClass for entities whose primary key is a @Id @OneToOne derived identifier. Without it, JpaRepository<MediaObjTransit, UUID>...

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