KamoCRM

Live Change Log

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

17,418
Total Changes
5,928
Features
5,263
Fixes
30
Projects
Filter by project
All Projects17,418AIService242APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService593RAGService79SecurityService1,837TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,336kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,642kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,254Feature5,928Fix5,263Other993Performance165Refactor278Revert23Style42Test159Upgrade1
May 1, 2026
Fixkamo-internal

Show upload error toast in Composer when attachments fail

Catches errors thrown by uploadAll() and renders an MUI Alert above the input row. Root cause of Defect 4 was the missing MinIO bucket (imaging-chat-attachments...

kamo·5mo ago
Fixkamo-internal

Empty Chats tab — frontend already expects {rows} paged shape (no change needed)

The ChatsList component already reads data.rows. Backend fix (shared-lib + MediaService) is the root cause: HAVING CAST(null AS TIMESTAMP) IS NULL did not work ...

kamo·5mo ago
FixMediaService

Use split First/After queries for chat sessions paged endpoint

Addresses empty Chats tab by dispatching to ****************

Kamo·5mo ago
Fixkamo-shared-library

Split findChatSessionsForMemberPaged into First/After to fix empty Chats tab

HAVING CAST(null AS TIMESTAMP) IS NULL did not evaluate as expected in CockroachDB,

Kamo·5mo ago
Fixkamo-internal

Drop redundant chat header buttons; integrate Members/Chats tabs with panel design

ChatHeader had its own minimize/close IconButtons but the chat tool window chrome already provides those affordances — they were duplicated when embedded. ChatH...

kamo·5mo ago
Fixkamo-shared-library

Switch MediaObjTransit to @MapsId derived-identity pattern

@IdClass combined with @Id @OneToOne is not reliably supported in Hibernate 6 — JpaRepository<MediaObjTransit, UUID> initialization fails with "does not define ...

Kamo·5mo ago
Fixkamo-internal

Drop unused @ts-expect-error on streaming fetch body

The `as RequestInit` cast already silences the type error; the directive is redundant under TS strict mode and breaks the production build.

kamo·5mo ago
Fixkamo-shared-library

Add @IdClass for MediaObjTransit so Spring Data JPA can expose its derived ID

Spring Data's metamodel requires @IdClass for entities whose primary key is a @Id @OneToOne derived identifier. Without it, JpaRepository<MediaObjTransit, UUID>...

Kamo·5mo ago
Featurekamo-internal

Live chats-list updates via NATS unread channel

kamo·5mo ago
Featurekamo-internal

Inline attachment rendering and lightbox

kamo·5mo ago
Chorekamo-internal

Trigger ci/cd

kamo·5mo 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·5mo 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·5mo 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·5mo ago
FeatureMediaService

Per-viewer mute endpoint and message filter

Kamo·5mo ago
Featurekamo-shared-library

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

Kamo·5mo 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·5mo ago
Featurekamo-shared-library

Add isAccessRevoked flag for per-attachment access control

Kamo·5mo ago
April 30, 2026
OtherSecurityService

Change to configmap to add kamo-asterisk-support

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