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
April 4, 2026
FixMediaService

Add debug logging and robust rights parsing for webinar controller

Adds info/warn logging for session data and rights on POST /types to diagnose 403 errors. Also adds fallback parsing for rights stored as JSON strings in Redis ...

Kamo·6mo ago
FeatureMediaService

Enforce minimum advance booking when filtering available slots

Filters out slots that fall within the configured minAdvanceBookingMinutes window, and persists the field on create/update of webinar types.

Kamo·6mo ago
FeatureMediaService

Implement webinar scheduling backend with full business logic

Adds the core webinar scheduling system to MediaService: - WebinarService: CRUD for **************** presenter assignment **************** calendar conflict ...

Kamo·6mo ago
ChoreMediaService

Trigger CI/CD rebuild

Kamo·6mo ago
ChoreMediaService

Trigger rebuild for scopes support deployment

Kamo·6mo ago
April 1, 2026
FeatureMediaService

Add ***-authenticated API key management endpoints for public chat

Adds /api/media/public-chat-keys CRUD endpoints for managing PublicChatApiKey shown once at creation. Uses same *** auth pattern as SupportController.

Kamo·6mo ago
FeatureMediaService

Add public chat support endpoints with anonymous visitor sessions and WebSocket auth

Adds REST endpoints for public chat session creation, messaging, and visitor management. Includes PublicChatWebSocketInterceptor for token-based WebSocket auth ...

Kamo·6mo ago
March 30, 2026
FeatureMediaService

Include org static background images in meet virtual backgrounds

Fetch backgroundImageCount from the org's theme config.json and generate URLs for /img/bg/{n}.webp so org-level static backgrounds appear alongside meet-specifi...

Kamo·6mo ago
FixMediaService

Resolve org theme backgrounds not appearing in meet virtual backgrounds

- Add domain-based theme URL resolution for internal K8s service-to-service calls - getPublicBackgrounds now accepts optional domain param to derive correct the...

Kamo·6mo ago
FixMediaService

Upload meet backgrounds to public MinIO bucket with hash-based naming

Was uploading to private 'imaging-meet-recordings' bucket via **************** which caused: - MinIO region mismatch errors on the primary node - Connection tim...

Kamo·6mo ago
March 29, 2026
FixMediaService

Return serialization-safe Maps instead of raw JPA entities in MeetConfigController

All config/background endpoints were returning raw JPA entities with @ManyToOne(fetch=LAZY) Organization references. Jackson failed to serialize the Hibernate p...

Kamo·6mo ago
FeatureMediaService

Add public config and backgrounds endpoints for sidecar consumption

GET /api/meet/public-config?domain= returns org meet config by domain. GET **************** returns combined virtual backgrounds. Both endpoints are unauthentic...

Kamo·6mo ago
FixMediaService

Remove duplicate endpoints from MeetController, add org-themes to MeetConfigController

MeetConfigController already handled config/background endpoints. The duplicate endpoints in MeetController caused ambiguous mapping. Added org-theme background...

Kamo·6mo ago
FeatureMediaService

Add config CRUD, background management, and org-theme endpoints

All endpoints enforce MANAGE_MEET_SETTINGS privilege. Config auto-creates with defaults on first access per org. Background uploads go to MinIO with SHA-256 has...

Kamo·6mo ago
FixMediaService

Update health probes to HTTP port 80 to match new server config

Startup, readiness, and liveness probes were still pointing to port 8443 with HTTPS scheme, causing pod restart loops.

Kamo·6mo ago
FixMediaService

Switch MediaService to HTTP port 80 — TLS termination at Traefik

Internal cluster traffic doesn't need HTTPS. Traefik handles TLS for external clients. This aligns MediaService with all other services.

Kamo·6mo ago
FixMediaService

Send chat invites to correct WebSocket topic /topic/chat/incoming/{memberId}

Was publishing to /topic/chat/member/{id} but kamo-internal subscribes to /topic/chat/incoming/{id}. Also fixed Member entity field access **************** inst...

Kamo·6mo ago
FeatureMediaService

Implement chat WebSocket and email invite sending for meetings

MeetController now reads sendChatInvite, sendEmailInvite, and customMessage from the create request body and triggers async invite sending. MeetService.sendInv...

Kamo·6mo ago
FeatureMediaService

Add MeetConfigController and MeetConfigService for org-level meet settings

REST endpoints for CRUD on OrgMeetConfig and MeetBackground entities. Supports config get/update, background upload/delete/reorder via MinIO storage.

Kamo·6mo ago
March 28, 2026
ChoreMediaService

Trigger rebuild

Kamo·6mo ago
ChoreMediaService

Rebuild

Kamo·6mo ago
ChoreMediaService

Rebuild with ServiceType.MEET COMPLETED stage

Kamo·6mo ago
FeatureMediaService

Add unread count API endpoint, mark-as-read endpoint, and WebSocket broadcast

- GET /api/media/sessions/chat/unread returns per-session and per-sender unread counts - PUT /api/media/sessions/{guid}/read marks a session as read for current...

Kamo·6mo ago
March 26, 2026
FeatureMediaService

Add PRE_TICKET creation and convert-to-ticket endpoint

- createTicket: when preTicket=true, sets status to PRE_TICKET, skips assignment (no title required) - PUT /tickets/{id}/convert: converts PRE_TICKET to NEW, ...

Kamo·7mo ago
March 25, 2026
OtherMediaService

Log session rights on support topic creation

Kamo·7mo ago
March 24, 2026
CIMediaService

Rebuild with latest kamo-shared-library

Kamo·7mo ago
FeatureMediaService

Add support ticket services, REST controllers, and STOMP relay

Implements the MediaService backend for the support ticket system: - SupportTopicService: CRUD for org-scoped support topics - SupportAssignmentService: round-r...

Kamo·7mo ago
March 20, 2026
March 19, 2026
FixMediaService

Add voip.> to NATS stream subjects and handle IllegalStateException in VoipStompRelayController

The NATS stream only covered chat.> so subscribing to voip.> threw IllegalStateException ([SUB-90007] No matching streams). Added voip.> to the stream subjects ...

Kamo·7mo ago
FeatureMediaService

Add VOIP NATS-to-STOMP relay in MediaService

Kamo·7mo ago
March 18, 2026
CIMediaService

Trigger pipeline

Kamo·7mo ago
March 17, 2026
CIMediaService

Rebuild with updated shared-lib

Kamo·7mo ago
March 14, 2026
ChoreMediaService

Add *.md to .gitignore

Kamo·7mo ago
March 13, 2026
CIMediaService

Trigger pipeline

Kamo·7mo ago
March 12, 2026
PerformanceMediaService

Skip DB member lookup for messages auth check

Extract getMemberIdFromRequest() that reads memberID from the Redis session without hitting the DB. Use it in getMessages() instead of getCurrentMember() — the ...

Kamo·7mo ago
PerformanceMediaService

Eliminate per-request logging overhead and async TTL refresh

- k8s configmap (the actual production config): lower security/hikari logging from INFO/DEBUG to WARN, add HikariCP pool config (max 20) - KSessionService: st...

Kamo·7mo ago
PerformanceMediaService

Reduce log noise and tune connection pool

- Lower Spring Security from TRACE to WARN and HikariCP from DEBUG to WARN — eliminates dozens of synchronous log writes per request - Add explicit HikariCP p...

Kamo·7mo ago
PerformanceMediaService

Remove per-message logging from chat message endpoint

Remove System.out.println calls inside the message stream map that were firing once per message (100 I/O operations per request), and the final log that streame...

Kamo·7mo ago
March 11, 2026
FixMediaService

Accept *** from query param for cross-subdomain WebSocket auth

Read *** ID from ?***= query parameter first, falling back to cookie. This allows the frontend on internal.kamocrm.com to authenticate WebSocket connections to ...

Kamo·7mo ago
FixMediaService

Handle stale NATS consumer binding with unique consumer retry

- Extract message handler into createNatsMessageHandler() method - Add retry logic with unique consumer name when "Consumer already bound" error occurs after ...

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