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
August 10, 2026
FeatureMediaService

Point at YugabyteDB and use PostgreSQLDialect

CockroachDB has been replaced by YugabyteDB. Connection strings move from cockroachdb-public:26257 to yb-tserver-service:5433, and the Hibernate dialect from **...

Kamo·3mo ago
August 9, 2026
FeatureMediaService

Attach an already-stored file without uploading it again

Forwarding a 2 GB video to three colleagues cost three full uploads. Storage deduplicated them into one object, but only after each transfer had completed and b...

Kamo·3mo ago
August 8, 2026
FeatureMediaService

Accept 3 GiB attachments by streaming them to storage

file.getBytes() cannot represent an upload this large — a Java array stops just above 2 GiB — so every attachment past that died on an OutOfMemoryError regardle...

Kamo·3mo ago
August 7, 2026
FeatureMediaService

Report the caller's claimable ticket queue

Kamo·3mo ago
FeatureMediaService

GET /types/{typeId}/slots so the settings editor can list slots

The settings UI has always fetched this path, but only POST/PUT/DELETE were mapped, so the Availability Slots tab got a 405 and rendered empty. Unlike /slots/av...

Kamo·3mo ago
August 6, 2026
FeatureMediaService

Relay the legal-package count and guard per-member SUBSCRIBEs

legal.packages.> -> **************** core NATS, no stream — the same shape SupportStompRelayController and PlatformStompRelayController already use. topicFor is...

Kamo·3mo ago
FeatureMediaService

Relay SecurityService platform events onto STOMP

SecurityService owns the platform-admin surface — system configuration, DNS provisioning, commerce sync — but has no WebSocket endpoint, so every screen backed ...

Kamo·3mo ago
August 5, 2026
FeatureMediaService

Capture the demo lead before the booking step

The marketing site's demo form collected name, email, company, company size, industry and a message, then advanced to scheduling without telling anyone. Lead cr...

Kamo·3mo ago
FeatureMediaService

Meeting provider abstraction with Zoom and Microsoft Teams

Meetings were Kamo Meets by construction — MeetService persisted a Meet room name and nothing else. This introduces the abstraction and two remote providers beh...

Kamo·3mo ago
August 3, 2026
FeatureMediaService

Persist MediaService PHI access trail to phi_access_log

Chat message reads were recorded through the Slf4j default writer, which puts the §164.312(b) trail in a 14-day log stream against a six-year retention obligati...

Kamo·3mo ago
FeatureMediaService

Record chat message reads on the endpoints that return bodies

Sending a message left a row; reading one left nothing. Every chat, support and social thread on the platform renders from a handful of endpoints here, and none...

Kamo·3mo ago
July 19, 2026
FeatureMediaService

Carry the AI conversation into the human thread on handoff

Creates or reuses the support session, copies the AI transcript in as one system event, routes it, and tells the visitor honestly what happens next. Confidenti...

Kamo·3mo ago
FeatureMediaService

Accept agent-authored outreach into an open borrower thread

The counterpart AIService's outreach dispatcher calls. Without it the whole outbound path terminated in a recorded 404 - the gate authorized a touch, the messag...

Kamo·3mo ago
July 18, 2026
FeatureMediaService

Assign a sales agent per channel + report LO availability

- WebChatIntegration CRUD threads salesAgentId (null clears the assignment) - lo-presence now returns the member's availabilityStatus alongside online, so the ...

Kamo·3mo ago
FeatureMediaService

Verify routing token, persist leadUid, reassign chat on lead move

- createSupportSession takes a signed routingToken (not preferredAgentMemberId); verified via ChatRoutingTokenCodec + cluster internal.auth.secret, enforces ...

Kamo·3mo ago
July 16, 2026
FeatureMediaService

Snapshot web-chat integration id on support visitor + ticket

Resolves the WebChatIntegration by creatingKeyHash (enabled-filtered, consistent with bootstrap()/AI-prompt resolution) once in createSupportSession and stamps ...

Kamo·3mo ago
FeatureMediaService

Public-chat bootstrap config resolver

Adds an internal GET **************** that resolves a WebChatIntegration by X-Public-Chat-Key-Hash and returns its resolved design/behavior config (default-fill...

Kamo·3mo ago
FeatureMediaService

WebChatIntegration CRUD (mints key + integration, org-scoped)

Org-facing management API for the Phase-2 web-chat settings tab. On create, mints the underlying PublicChatApiKey (same key-gen approach as PublicChatKeyControl...

Kamo·3mo ago
July 15, 2026
FeatureMediaService

Mobile push dispatch (FCM data + direct APNs) with presence gate

chat incoming (MediaController), support ticket (SupportNotificationService), SMS/voicemail (VoipStompRelayController), social **************** Presence-gated l...

Kamo·3mo ago
FeatureMediaService

Accept X-***-Token on REST; slide TTL with per-session timeout

OTKPreAuthFilter resolves X-***-Token when no X-OTK is present (same call MediaService REST without the BFF. KSessionService now slides the Redis TTL with the s...

Kamo·3mo ago
July 14, 2026
FeatureMediaService

Reach the borrower's OWN officer directly, no support-right gate

Drop the ACCEPT_SUPPORT_TICKETS requirement from assignToPreferredAgent: the borrower's assigned loan officer is reachable regardless of whether they're a confi...

Kamo·4mo ago
FeatureMediaService

Direct-to-assigned-LO routing + LO presence endpoint

Powers the borrower portal's merged LO/chat widget: - **************** direct-assigns a public-chat ticket to a SPECIFIC agent (the borrower's assigned loan o...

Kamo·4mo ago
July 13, 2026
FeatureMediaService

Missed-message email notifications (chat + support) with per-source suppression

Durable NATS consumer chat-email-notifier on chat.session.> feeding a MESSAGE_EMAIL_NOTICES ledger (PENDING/SENT, per-sender for chat, per-ticket for support), ...

Kamo·4mo ago
July 10, 2026
FeatureMediaService

Durable last-seen timestamps + bulk endpoint

PRESENCE:{id} is deleted the moment a member goes offline, so nothing recorded when they were last active. Stamp PRESENCE_LAST_SEEN:{id} (orgId + ts, 400d TTL) ...

Kamo·4mo ago
July 8, 2026
FeatureMediaService

AI auto-tag + caption via org's providers (P3)

MaterialAiController POST **************** verifies ownership, mints a short-lived signed material URL, and calls AIService's internal vision endpoint (org's ow...

Kamo·4mo ago
FeatureMediaService

MaterialAnalyticsController — record events + aggregates

POST **************** (record) + GET /analytics (per-material counts by type + org totals).

Kamo·4mo ago
FeatureMediaService

MaterialReviewController — status map + set-status

GET /api/media/materials/reviews (org-wide imgId→status map) + POST to set a material's status (validated, reviewer-stamped, upsert).

Kamo·4mo ago
FeatureMediaService

MaterialCampaignController — CRUD + item map + add/remove

/api/media/materials/campaigns: list/create/update/delete, GET /items (org-wide imgId↔campaignId map), POST /add + /remove with org-ownership checks.

Kamo·4mo ago
FeatureMediaService

MaterialTagController — tag CRUD + assign/unassign + assignment map

/api/media/materials/tags: list/create/delete tags, GET /assignments (org-wide imgId↔tagId map the workspace joins client-side), POST /assign + /unassign with o...

Kamo·4mo ago
FeatureMediaService

Managed public-link endpoints (create/list/revoke) + tracked serve

Adds POST/GET /api/media/materials/links and DELETE /links/{id} backed by MaterialShareLink, and resolves managed tokens on the public GET first (checking revok...

Kamo·4mo ago
FeatureMediaService

Thumbnail scheduled-generated materials in-process

A headless sweep can't drive ConversionService's OTK thumbnail pipeline, so generate a page-0 PNG thumbnail via ImageIO right after storing the export — schedul...

Kamo·4mo ago
FeatureMediaService

Scheduled generation — sweep runs recipes on a cadence

- CanvaScheduleController: CRUD for org schedules (recipe + cadence + hour/day + optional social targets), computes nextRunAt - CanvaGenerationService: headle...

Kamo·4mo ago
FeatureMediaService

Saved autofill recipes CRUD (org-scoped)

CanvaRecipeController: GET/POST /api/media/canva/recipes + DELETE /{id} — save/list/soft-delete a named brand-template + field mapping, scoped to the caller's o...

Kamo·4mo ago
FeatureMediaService

Enterprise autofill — data-merge brand templates

- CanvaApiClient: list brand templates (dataset=non_empty), get dataset, asset-upload jobs, create/get autofill jobs - CanvaController: GET /brand-templates, ...

Kamo·4mo ago
FeatureMediaService

Short-lived signed public URLs for marketing assets

Lets social providers (Meta) and email fetch a specific material for a bounded window without exposing the private imaging-materials bucket. - MaterialUrlSigne...

Kamo·4mo ago
FeatureMediaService

Import a file into Canva as an editable design

- **************** (binary design import) - CanvaController POST /imports (multipart) → create+poll import job → editor deep-link with correlation_state for r...

Kamo·4mo ago
FeatureMediaService

Verify return-nav JWT signature; tidy token refresh

- CanvaJwtVerifier: verify the correlation_jwt's Ed25519 signature against Canva's JWKS (/connect/keys), plus aud/exp/type; keys cached by kid. Return-nav n...

Kamo·4mo ago
FeatureMediaService

Recording ingest, retention/quota, storage usage, summary pipeline

- MeetRecordingController: internal (X-Internal-Auth) ingest endpoint the jibri finalize.sh posts finished recordings to. - MeetRecordingService: uploads reco...

Kamo·4mo ago
July 7, 2026
FeatureMediaService

Canva Connect OAuth + designs/export backend

- CanvaApiClient: PKCE authorize, token exchange/refresh/revoke, users, designs (create/list), export jobs, byte fetch - CanvaTokenService: encrypted per-memb...

Kamo·4mo ago
FeatureMediaService

Scheduled-meeting start reminders + guest-link expiry

- MeetingReminderSweep: @Scheduled sweeper that fires a realtime "meeting starting" reminder to invited members at (start − reminderMinutesBefore) on ******...

Kamo·4mo ago
FeatureMediaService

Unified Chats feed across member/support/social sessions

GET /api/media/sessions/chat now accepts a `categories` filter (chat, support, social; default all) and returns one globally most-recent-first, merge of the per...

Kamo·4mo ago
July 6, 2026
FeatureMediaService

Surface parent-org shared topics in request-support popup

Child-org users could not see their parent org's shared support topics (assignToOwnOrg=false) when requesting support, because the popup only fetched own-org to...

Kamo·4mo ago
FeatureMediaService

Org-guard the /topic/leads/rt/{orgId} realtime subscription

Cross-tenant SUBSCRIBE guard for the new lead real-time topic, mirroring the existing /topic/social/feed guard: a member may only subscribe to their own org's l...

Kamo·4mo ago
July 4, 2026
FeatureMediaService

Unified timeline backend (feed persistence, adapters, live relay)

SocialFeedService persists posts/comments onto the MediaSession/MediaObj schema (reusing the chat model); SocialFeedMapper builds the wire DTOs; SocialTimelineC...

Kamo·4mo ago
July 3, 2026
FeatureMediaService

X (Twitter) + Discord adapters

- XAdapter: Account Activity webhook (CRC challenge + x-twitter-webhooks-signature HMAC verify), normalizeInbound (direct_message_events, echo-skip), OAuth 1....

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