KamoCRM

Live Change Log

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

17,539
Total Changes
6,013
Features
5,292
Fixes
30
Projects
Filter by project
All Projects17,539AIService257APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService581InitializerService329KBService151KlusterServices741MCPGatewayService253MediaService602RAGService79SecurityService1,854TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,358kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,666kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,255Feature6,013Fix5,292Other994Performance165Refactor278Revert23Style42Test162Upgrade1
May 1, 2026
Featurekamo-internal

Inline attachment rendering and lightbox

kamo·6mo ago
Featurekamo-internal

Proxy routes for find-or-create, members, attachments, imaging proxy, mute, revoke

Extract shared **************** helper to app/lib/mediaServiceUrl.ts. Add proxy routes: find-or-create, members, receipts, attachments (streaming), mutes, revok...

kamo·6mo ago
FeatureMediaService

Paged chat list with previews, members, unread counts

that returns ChatListRowDto rows including last message preview, member summaries, per-session unread counts, and ownLastViewedAt.

Kamo·6mo ago
Featurekamo-shared-library

Add countUnreadAfter(guid, memberId, since) to MediaObjRepository

Needed by paged chat-list endpoint to compute per-session unread counts when ownLastViewedAt is a LocalDateTime pointer rather than a message UUID.

Kamo·6mo ago
FeatureMediaService

Per-viewer mute endpoint and message filter

Kamo·6mo ago
Featurekamo-shared-library

Add **************** to MediaSessionMuteRepository

Kamo·6mo ago
Featurekamo-shared-library

Add MediaObjImgDownloadRepository with existsByObjImgIdAndMemberId

Required by ImagingProxyService (Task 10) to deduplicate per-member download tracking without a full table scan.

Kamo·6mo ago
Featurekamo-shared-library

Add isAccessRevoked flag for per-attachment access control

Kamo·6mo ago
April 30, 2026
Featurekamo-marketing

Distinguish actively-translating vs queued messages

The translation queue was already sequential, but every queued bubble rendered "Translating…". Now the single in-flight message shows "Translating…" with a puls...

Kamo·6mo ago
Featurekamo-internal

Distinguish actively-translating vs queued messages

The streaming queue was already strictly sequential (one fetch at a time), but every queued message rendered "Translating…" because they all shared the same pen...

kamo·6mo ago
Featurekamo-marketing

Show error icon when a message fails to translate

When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders an AlertTriangle icon in red with tooltip "F...

Kamo·6mo ago
Featurekamo-internal

Show error icon when a message fails to translate

When the per-message translate call returns translated:false, errors out, or times out, the chat bubble now renders a small red ErrorOutline icon in place of th...

kamo·6mo ago
Featurekamo-marketing

Stream translations newest-first for visitor history

When the visitor lands on a non-English locale and the support chat has existing English messages, every bubble flagged needsTranslation by the backend now show...

Kamo·6mo ago
Featurekamo-internal

Stream message translations newest-first on language switch

When the user picks a new language (or opens an existing chat in a language different from the messages' source), every bubble that needs translation immediatel...

kamo·6mo ago
Featurekamo-marketing

Auto-translate visitor and agent messages

Live agent replies arriving in a language other than the visitor's URL locale now show a "Translating…" bubble while the TranslateService call resolves, then sw...

Kamo·6mo ago
Featurekamo-internal

Translate chat messages into the viewer's language

Adds a "My Language" flag picker in NavTop (left of the email tool, separated by a vertical rule). Selecting a language writes back to Member.language and syncs...

kamo·6mo ago
FeatureAPIService

Proxy support-message translate endpoint

Adds a passthrough route for the new MediaService endpoint that translates a single support-chat message into the visitor's URL locale. The marketing-side chat ...

Kamo·6mo ago
FeatureMediaService

On-demand translation for chat and support messages

Captures the source language for every chat / support message and adds an optional ?lang=XX param on the message-fetch endpoints plus a per-message POST /transl...

Kamo·6mo ago
Featurekamo-shared-library

Translation cache for chat messages

Adds the MediaObjMsgTranslation entity (one row per (message, language) pair) and an optional sourceLanguageId column on MediaObjMsg so chat messages can be tra...

Kamo·6mo ago
Featurekamo-internal

Add Personal + Chat/Docs/Notes/KB/HRS sections

The /settings index showed no sections to non-admins because every existing section was gated on an admin right (CONFIGURE_SYSTEM, MANAGE_*_SETTINGS, MANAGE_ACC...

kamo·6mo ago
Featurekamo-internal

Rotate goal opening based on viewport aspect ratio

The goal frame now tilts by atan2(viewportH, viewportW) so its open right side aims toward the viewport diagonal — for 16:9 monitors the opening points ~29° sou...

kamo·6mo ago
Featurekamo-internal

Throw-to-remove goal with score/miss celebrations

A 132×132 goal frame appears in the upper-left whenever a head is in solo-drag or active-throw, offset 56px from the corner so heads can miss past or behind it....

kamo·6mo ago
April 29, 2026
Featurekamo-internal

Throw physics with pool-table collisions and comet trail

Flicking a head past the throw threshold launches it across the viewport under explicit physics (friction, edge bounce, head-vs-head elastic collisions). Slow d...

kamo·6mo ago
Featurekamo-internal

Use server-minted OTK to switch into new org

Prefer the otk returned by POST /api/security/org over the follow-up /api/security/enter-as round-trip. The server now mints a fresh owner session as part of or...

kamo·6mo ago
FeatureSecurityService

Mint owner ***+OTK on org create

After createOrganizationOwner, mint a fresh *** bound to the new owner TeamMember and return its OTK alongside id/members. Without this the creator stays on the...

Kamo·6mo ago
Featurekamo-shared-library

Self-heal unprovisioned COMP orders on startup

On @PostConstruct, scan all APPROVED COMP orders and provision any that lack an AccountSubscription. Idempotent — find-or-create means safe to run repeatedly.

Kamo·6mo ago
Featurekamo-internal

Move availability status dropdown to left side before My Businesses

Relocates the status pill from the right action bar to the left welcome section, placing it between the greeting separator and My Businesses with a divider. Rem...

kamo·6mo ago
FeatureSecurityService

Add provision-comp endpoint to activate COMP subscription from approved order

POST **************** calls **************** then invalidates entitlements for the target org via EntitlementService.

Kamo·6mo ago
Featurekamo-shared-library

COMP order approval auto-provisions AccountSubscription and assigns license

- SubscriptionOrder: add targetOrganization (nullable FK to orgs) - **************** add targetOrganizationId string - AccountRepository: add findByPrimaryMembe...

Kamo·6mo ago
Featurekamo-internal

Replace click-to-open with action popover + size controls

Clicking a hex head now opens a polished glass-morphism popover with contextual actions instead of immediately opening its tool window. Member chat heads expose...

kamo·6mo ago
FeatureInitializerService

Add MEMBER_UI_PREFERENCES table (order 60)

Idempotent CREATE for the generic per-member UI-preference store backing the hex-head popover size selector and future per-member UI settings. Schema mirrors th...

Kamo·6mo ago
FeatureSecurityService

Add MemberUiPreferenceController for per-member UI settings

Backs the new hex-head popover size selector and any future small per- member UI preference. Endpoints under /api/security/members/me/ui- preferences resolve th...

Kamo·6mo ago
Featurekamo-shared-library

Add MemberUiPreference entity for per-member UI prefs

Generic per-member UI preference store (memberId, prefKey, JSONB value) for small persisted UI settings. First consumer is the hex-head popover size selector.

Kamo·6mo ago
Featurekamo-internal

Wire FeaturesManager to platform subscription for child-org gating

FeaturesManager was calling legacy **************** which throws (ungated fallback) instead of reading the real platform subscription. Now calls **************...

kamo·6mo ago
FeatureSecurityService

Add platform-subscription endpoint for cross-org feature gating

Child-org admins (like GNosia's owner Daniel) have their COMP subscription orders on the root KamoCRM org, not on their own org. FeaturesManager was querying t...

Kamo·6mo ago
Featurekamo-internal

Use translated aria-label for SettingsView tabs

Reads **************** from next-intl.

kamo·6mo ago
Featurekamo-internal

I18n for legacy hub content/sidebar via settingsLegacyHub

Replace hard-coded English with next-intl. Introduces stable topic id constants; activeTopic is compared against ids instead of translated display strings.

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