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
March 23, 2026
Fixkamo-internal

Forward raw JSON responses in notes API routes to preserve ID precision

CockroachDB unique_rowid() IDs exceed JavaScript's MAX_SAFE_INTEGER. The previous response.json() + NextResponse.json() round-trip caused JSON.parse to convert ...

kamo·7mo ago
Fixkamo-internal

Improve notes save flow — keep editor open, show actual errors

- Don't close the editor after saving an existing note (only close after creating a new one) - Fix fetchWithAuth to read error.error instead of error.message ...

kamo·7mo ago
Fixkamo-internal

Open notes directly on click, derive categories from data, remove encryption

- Click a note to open it directly in the editor instead of making a separate API call that was failing - Derive categories and tags from loaded notes data in...

kamo·7mo ago
FixSecurityService

Use OTKPreAuthFilter attributes instead of re-validating OTK in NotesController

The OTKPreAuthFilter already consumes and validates the OTK, storing the session data in request attributes. NotesController was trying to re-validate the alrea...

Kamo·7mo ago
FixAPIService

Explicitly forward visitor IP to downstream services

ForwardedHeaderFilter consumes X-Forwarded-For from the incoming request, so when APIService forwards to SecurityService via RestTemplate the header is missing....

Kamo·7mo ago
March 22, 2026
Fixkamo-internal

Resolve notes page load failure and replace Quill editor with Lexical

Add missing runtime/dynamic exports to all notes API routes to enable proper OTK authentication. Replace React Quill WYSIWYG editor with the same Lexical-based ...

kamo·7mo ago
Fixkamo-internal

Forward visitor IP/User-Agent to backend, add duration unit picker

apiProxy: Now forwards X-Forwarded-For and User-Agent from the original visitor so backend logs the real client info instead of the Next.js server. AccessBlock...

kamo·7mo ago
FixInitializerService

Remove RoleRightsSyncRunner — rights are added manually for existing orgs

The underlying bug in **************** (detached entity issue) has been fixed in kamo-shared-library. New rights for existing roles will be added manually via S...

Kamo·7mo ago
Fixkamo-shared-library

Use managed role references when creating role rights in createOrganization

After organizationRepository.save(), the local roleAdmin/roleEveryone variables could be detached from the persistence context. createRoleRights() was adding Or...

Kamo·7mo ago
Fixkamo-internal

Restore permission gate on AccessBlockManager

Re-adds the MANAGE_ACCESS_RULES permission check that was incorrectly removed. The underlying issue (admin roles missing new rights) is fixed by KamoInitializer...

kamo·7mo ago
Fixkamo-internal

Remove full-component permission gate from AccessBlockManager

New rights aren't assigned to any role yet, blocking all users. Other security settings tabs (API Access, OAuth2, System Debug) don't have permission gates — fo...

kamo·7mo ago
FixSecurityService

Remove GD check from ****************

The sed command that added the god-mode bypass incorrectly inserted it into all methods containing sessionData, not just hasRight. This caused 'return true' (bo...

Kamo·7mo ago
Fixkamo-internal

Initialize god mode state synchronously from localStorage

isGodMode was initialized as false and only loaded from localStorage in a useEffect (after first render), so checkRight() returned false on initial render even ...

kamo·7mo ago
Fixkamo-internal

Allow god-mode-active users to bypass right checks in checkRight

New security rights aren't assigned to any role yet, causing all users to be denied. God-mode-active users now pass all checkRight() calls.

kamo·7mo ago
FixSecurityService

Allow god-eligible users to bypass access security permission checks

New rights (MANAGE_ACCESS_RULES, VIEW_ACCESS_LOGS, etc.) aren't granted to any existing role yet, so all users get Forbidden. God-eligible users (GD=true in ses...

Kamo·7mo ago
FixAPIService

Move AccessEnforcementFilter to scanned package, revert ComponentScan

The widened @ComponentScan caused a corsFilter bean conflict between CorsConfig and WebConfig. Moved the filter into com.kamo.api.app.config (already scanned by...

Kamo·7mo ago
March 21, 2026
FixAPIService

Add Redis connection config to K8s configmap

APIService pod was failing to start because spring-boot-starter-data-redis auto-configuration couldn't connect to Redis at localhost:6379. Points to redis.kamo....

Kamo·7mo ago
Fixkamo-internal

Show KB nav item unconditionally in sidebar

Removed the isKnowledgeBase feature gate so KB always displays, matching the previous NavTop behavior.

kamo·7mo ago
Fixkamo-marketing

Remove GradientMeshBackground orbs that follow mouse coder

The blue and purple radial gradient circles were rendered by the GradientMeshBackground component tracking mouse position.

Kamo·7mo ago
Fixkamo-marketing

Remove fireflies and scroll particle burst animations

Remove fuzzy ball (Fireflies) components from Hero, Features, Pricing, and SignupSection. Remove ScrollParticleBurstEnhanced firework animation from the main pa...

Kamo·7mo ago
Fixkamo-login

Prevent password input from dropping first keystroke on step transition

The focus polling loop was calling setSelectionRange(0, length) every 50ms for 1.2s, which selected any typed character so the next keystroke replaced it. Now t...

Kamo·7mo ago
Fixkamo-internal

Replace broken Anthropic, OpenRouter, and xAI logo SVGs

The original files were 404 placeholders (14 bytes). Replaced with proper SVG logos from Simple Icons.

kamo·7mo ago
Fixkamo-marketing

Replace broken Anthropic, OpenRouter, and xAI logo SVGs

The original files in kamo-internal were 404 placeholders (14 bytes). Replaced with proper SVG logos from Simple Icons.

Kamo·7mo ago
March 20, 2026
FixEmailService

Update calendar, contact, and integration ID types from Long to UUID

Calendar entities, contact sub-entities, and ContactIntegration IDs are now UUID. Updates all services, controllers, and DAV endpoints.

Kamo·7mo ago
FixSecurityService

Resolve remaining Long/UUID type mismatches in controllers and beans

Fixes LeadVendorController, LeadMarketController, LeadImportController, ImagingController, AccountController, MediaStreamController, POSController, MemberContro...

Kamo·7mo ago
Fixkamo-shared-library

Resolve remaining Long/UUID type mismatches in services and DTOs

Fixes compilation errors in CommerceService, OrganizationService, ExternalAuthProviderService, Img*Service, Lead*Service, LeadVendorService, ImageService, and a...

Kamo·7mo ago
Fixkamo-internal

Include required fields in create book payload

The backend DTO requires isOrgDefault, isOrgLevel, and isVisible fields — sending only name caused a 415 Unsupported Media Type.

kamo·7mo 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·7mo 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·7mo 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·7mo 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·7mo 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·7mo 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·7mo 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·7mo ago
March 19, 2026
Fixkamo-internal

Use string conversationId throughout SMS tool to handle 64-bit IDs

Backend now serializes Long as string; update all conversationId types from number to string to match. Also enable send button when an attachment is present wit...

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