KamoCRM

Live Change Log

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

18,392
Total Changes
6,527
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,392AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,692kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,527Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
April 25, 2026
FeatureMediaService

Broadcast unread counts to agent on visitor message

After a visitor sends a support message, push the latest unread-counts payload to **************** so the agent's ticket-list badge and navtop counter update in...

Kamo·6mo ago
FixMediaService

Expand JPA repository scan to include commerce package

The new kamo-shared-library brings in **************** which requires **************** (in com.kamo.z.shared.commerce). MediaService only scanned donotmodify.da...

Kamo·6mo ago
FixMediaService

Restore HashMap import in ChatWebSocketController

The previous refactor removed the HashMap import but the handleTyping method still constructs a HashMap for the typing event payload, causing the Forgejo build ...

Kamo·6mo ago
FixMediaService

Proactively create NATS consumer at session creation to prevent message loss

Previously the NATS JetStream push consumer was only created when a STOMP client sent /app/chat/subscribe. With DeliverPolicy.New, any messages published before...

Kamo·6mo ago
April 21, 2026
FixMediaService

Relay theme provision from core NATS

Match SecurityService core publish: subscribe with Dispatcher on security.theme.provision.* instead of JetStream (stream only covers chat).

Kamo·6mo ago
April 20, 2026
FixMediaService

Use PublicChatVisitor displayName for requestorName on visitor tickets

Visitor-initiated tickets hardcode requestor to the org system member, so the DTO was surfacing the org owner's name in the Requestor column. Fall back to the P...

Kamo·6mo ago
FeatureMediaService

Expose city and subdivision in visitor geo lookup

- Extend GeoResult record with city and subdivision fields - Switch SupportTicketService.toDTO() to use GeoLookupService (IP-level lookup) instead of country-...

Kamo·6mo ago
FixMediaService

Build error in GeoLookupService and add NATS publish for agent messages

- Fix Optional vs List type mismatch in **************** - Inject NatsMessageService into MediaController - Publish to chat.session.{guid} after agent creates a...

Kamo·6mo ago
FixMediaService

Real-time chat delivery, message sides, notifications, and name sync

- Keep NATS subscription alive on client unsubscribe to avoid breaking agent real-time delivery - Tag visitor messages with messageType=VISITOR_MESSAGE in getMe...

Kamo·6mo ago
FeatureMediaService

Show visitor flag and location in support ticket header

- Inject PublicChatVisitorRepository and GeoLiteLocationRepository into SupportTicketService - Populate visitorIpAddress, visitorCountryCode, visitorCountryName...

Kamo·6mo ago
FixMediaService

Tag visitor messages as VISITOR_MESSAGE type, add senderName to GET messages

- PublicChatService: set messageType=VISITOR_MESSAGE so frontend can distinguish visitor echoes from agent responses on the STOMP topic - MediaController.getM...

Kamo·6mo ago
FeatureMediaService

Fix end-to-end public chat real-time via STOMP/NATS

- Remove internalAuth requirement from PublicChatWebSocketInterceptor so visitors can connect directly using only their sessionToken - Include visitor display...

Kamo·6mo ago
FixMediaService

Three support/chat issues — NATS relay, auto-popup, topic fallback

1. Switch SupportNotificationService and SupportStompRelayController from JetStream to core NATS — the CHAT_MESSAGES stream only covers chat.> so JetStrea...

Kamo·6mo ago
FixMediaService

Write contact form description as chat message on public ticket creation

The description was only stored on the ticket entity and never appeared in the chat window. Added writeTextMessage() helper and call it after the system event s...

Kamo·6mo ago
April 19, 2026
ChoreMediaService

Rebuild for kamo-shared-library update (CREATE_CHILD_ORG right + apply-to flags)

Pulls the new RoleRightType.CREATE_CHILD_ORG (id 131), the three apply-to flags on ChildOrgSecurityModel, the two 13-arg service overloads, and the AppliedModel...

Kamo·6mo ago
ChoreMediaService

Rebuild for kamo-shared-library update (appConfig upsert-only fix)

Pulls the hardened **************** that no longer deletes appConfig rows whose service types are absent from the caller's payload — prevents silent data loss w...

Kamo·6mo ago
ChoreMediaService

Rebuild for kamo-shared-library update (effective-feature resolver)

Picks up the new AppliedModelEnforcementService methods (computeAvailabilitiesMap, isAppEffectivelyEnabled, getEffectivelyEnabledAppTypes, computeEffectiveFeatu...

Kamo·6mo ago
ChoreMediaService

Rebuild for kamo-shared-library update (applied-model enforcement + appConfigs + isPrivate)

Triggers a rebuild so this service pulls the updated kamo-shared-library containing AppliedModelEnforcementService, ChildOrgSecurityModelAppConfig entity, Servi...

Kamo·6mo ago
ChoreMediaService

Rebuild for kamo-shared-library update (runtime force rules + DEFAULT fallback in MemberRightsAppliedService)

Triggers a rebuild so this service picks up the updated **************** that applies template force rules and DEFAULT-template fallbacks on top of the existing...

Kamo·6mo ago
ChoreMediaService

Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)

Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...

Kamo·6mo ago
April 18, 2026
FixMediaService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
April 16, 2026
CIMediaService

Add concurrency group to prevent duplicate workflow runs

When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...

Kamo·6mo ago
April 11, 2026
FeatureMediaService

Add conversion progress NATS-to-STOMP relay

Relays document conversion progress from NATS to WebSocket clients. Supports both imgId-based and member-based topic routing for real-time progress updates duri...

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

Trigger CI/CD rebuild

Kamo·7mo ago
ChoreMediaService

Trigger rebuild for scopes support deployment

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