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

Add bulk text proxy route and API client

kamo·6mo ago
FeatureVOIPService

Add BulkTextProviderFactory with tests

Kamo·6mo ago
Featurekamo-shared-library

Add cellPhone embedded field to Member entity

Kamo·6mo ago
Featurekamo-shared-library

Add BulkTextProviderConfig entity and repository

Kamo·6mo ago
Featurekamo-shared-library

Add BulkTextProviderType enum

Kamo·6mo ago
FeatureInitializerService

Add cell phone columns to members table for bulk text SMS

Kamo·6mo ago
Featurekamo-internal

Inline Add to Contacts dialog from recipient popover

Replace the old behavior (navigating to /contacts page, losing the composer) with a lightweight inline dialog that: - Pre-fills first/last name from the recipi...

kamo·6mo ago
Chorekamo-internal

Remove old Third-Party Integrations tab and unused code

- Delete ThirdPartyIntegrationsTab component (old calendar sync UI, replaced by new CalDAV/CardDAV system) - Delete /api/integrations proxy route (only used b...

kamo·6mo ago
Fixkamo-internal

Prevent recipient popover from flashing at top-left corner

The popover initialized at position {0,0} and repositioned in a useEffect (after paint), causing a visible fly-in from the top-left. Fixed by using useLayoutEf...

kamo·6mo ago
Fixkamo-internal

Portal all overlays out of tool window stacking context

ToolWindowShell applies `transform: translateY(0)` which creates a CSS stacking context. This caused all `position: fixed` overlays (autocomplete dropdown, popo...

kamo·6mo ago
Fixkamo-internal

Fix autocomplete — infinite loop, missing API, auth

Three root causes fixed: 1. Infinite re-render loop: existingEmails was a new array reference every render, causing the search useEffect to re-fire endlessl...

kamo·6mo ago
Fixkamo-internal

Fix untyped recipient inputs and match Subject field styling

- Fixed drag handler blocking input focus by skipping preventDefault when clicking on INPUT elements or buttons - Rewired RecipientField from Tailwind classes...

kamo·6mo ago
Chorekamo-internal

Remove unused legacy MessageComposer and Manager

These components were superseded by the tool window MessageTool.tsx and are no longer imported anywhere in the codebase.

kamo·6mo ago
Fixkamo-internal

Integrate recipient fields into tool window composer

The previous commit added the recipient components but modified the wrong composer (MessageComposer.tsx). This integrates RecipientField into MessageTool.tsx — ...

kamo·6mo ago
Fixkamo-internal

Add book buttons per source, remove redundant manage icon

- Remove redundant "+" manage sources icon from sources view header (already accessible via bottom "Manage Contact Sources" button) - Add "Add book" icon butt...

kamo·6mo ago
Featurekamo-internal

Add edit mode, title field, and live status to source management

- ManageSourcesDialog now has edit button per source for editing title and credentials (CalDAV/CardDAV URL, username, password) - Add title field when adding ...

kamo·6mo ago
FeatureEmailService

Add per-source sync status in WebSocket + displayName support

- WebSocket sync status now includes per-integration statuses in a 'sources' map keyed by integration ID - applyConfig now handles displayName field for user-...

Kamo·6mo ago
Refactorkamo-internal

Replace Add Source with Manage Contact Sources dialog

- Rename AddSourceDialog → ManageSourcesDialog with full CRUD (list existing sources with status + remove, plus inline add form) - Move "Manage Contact Source...

kamo·6mo ago
Featurekamo-internal

Add modern recipient fields with chips, autocomplete, and contact picker

Replace basic text inputs in email compose To/CC/BCC fields with rich recipient components: chip-based display with remove buttons, debounced autocomplete searc...

kamo·6mo ago
Featurekamo-internal

Add sync toggle, source management, and WebSocket status

- Overhaul ContactsLeftPanel with 3 display modes: org-only books, sources with nested books (sync off), and flat org books (sync on) - Add SyncFooter with re...

kamo·6mo ago
FeatureDaemonService

Include memberId in sync complete NATS messages

SyncCompletePublisher now accepts optional memberId parameter, and ContactSyncJob passes it from the integration's member reference. This enables EmailService t...

Kamo·6mo ago
FeatureEmailService

Add member-level sync toggle and WebSocket sync status

- Add PUT /member/sync-toggle endpoint to batch-toggle syncEnabled on all member integrations at once - Add ContactSyncWebSocketController broadcasting aggreg...

Kamo·6mo ago
Featurekamo-internal

Add Create Contact dialog with multi-tab form

Adds a fully-featured Create Contact dialog accessible via a "New" chip in the contacts toolbar. The dialog supports all contact sub-entities (emails, phones, a...

kamo·6mo ago
Featurekamo-internal

Send and display image attachments in chat

- SmsChatTab: read file as base64 via FileReader, pass to API, render <img> in message bubble - voipApi: add attachment params to sendSms

kamo·6mo ago
FeatureInitializerService

Add attachment_url column to voip_messages

Kamo·6mo ago
Featurekamo-shared-library

Add attachmentUrl field to VoipMessage entity

Kamo·6mo ago
FeatureVOIPService

Add MMS attachment support — multipart send, base64 storage, image display

- RingCentralProvider: override sendSms with multipart/form-data MMS path - VoipMessageService: accept attachment bytes, store base64 data URL in attachmentUrl ...

Kamo·6mo ago
Featurekamo-shared-library

Add findAllByProvider to OrgOAuthTokenRepository

Kamo·6mo ago
FixVOIPService

Explicitly stringify Long IDs in SmsController responses

**************** Long-as-string approach was not taking effect. Directly call .toString() on all Long IDs in the controller flat-map responses to guarantee no J...

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