KamoCRM

Live Change Log

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

17,395
Total Changes
5,910
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,395AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,830TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,328kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,910Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
September 28, 2026
FixSecurityService

A re-translation no longer deletes the translation it replaces

Since 1f715e4 (2026-09-23) saveLocaleTranslation loaded the locale's row to decide whether the count moved, bulk-deleted it and saved a new one. The load left t...

Kamo·3w ago
FixEmailService

Indexing a listed page can no longer fail the listing

recordSyncedPage was @Transactional and caught every exception of its own. The index repositories join the caller's transaction, so a write that met a concurren...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Otherkamo-internal

Merge kamoai/program: KamoAI ledger

Kamo·3w ago
FixMediaService

The viewer's theme host is read before the transaction, never inside it

The Exec2Exec roster, its participant list and every conversation's faces read the viewer's organization's domains lazily, as a late statement of a read-only tr...

Kamo·3w ago
FixAIService

A streamed member turn retries once without an optional parameter the provider refused

Member chat streams through the adapter itself, outside ProviderCallExecutor, so it had no ParameterFallback. Since SP99-T12 every Hugging Face stream asks for ...

Kamo·3w ago
Docskamo-internal

SP99-T3 rulings — the media feed reaches the browser

SP99-T3-a/b/c in the SP99 spec, a master §11 row, and svc_media's subscribe grant (media.feed.*) in the SP00 design table and plan text.

Kamo·3w ago
Docskamo-internal

SP99 T5 rulings — inbound SMS rails

Kamo·3w ago
FixVOIPService

Store inbound RingCentral texts, and stop re-registering live JustCall webhooks

RingCentral: the SMS subscription was the bare /message-store filter, whose notifications are a change summary with no message in it, and the reader looked for ...

Kamo·3w ago
TestMediaService

A group chat of two AI members with identical columns holds both (SP10)

SP10 T47, live: chat_find_or_create_dm for the owner, Ava and Ben answered 400 "one or more memberIds not found": TeamMember's value equality kept one of the tw...

Kamo·3w ago
Otherkamo-internal

Merge kamoai/program: KamoAI ledger

Kamo·3w ago
RefactorSecurityService

One builder for both feed answers, tested without the controller

getFeed built the lead's and the organization's response in two copies of the same block; feedResponse builds both, so streamGuid cannot be in one and missing f...

Kamo·3w ago
Fixkamo-shared-library

A team member is equal to another only when their ids are (SP10)

SP10 T47, live: MediaService answered "one or more memberIds not found" to a group chat of the owner and two AI members. Lombok's @EqualsAndHashCode(callSuper =...

Kamo·3w ago
Featurekamo-internal

The All tab and badges reload when anyone writes a note on the lead

The lead's Communications opens on All, whose timeline reloaded only when this member posted a note from it, so a note written by someone else (another member, ...

Kamo·3w ago
Featurekamo-internal

A lead's Notes reloads when a note is written in its own stream

MediaStream (a lead's Notes, the Clubhouse feed) listened on /topic/media/feed/<orgId> but reacted only to POST_CREATED/POST_UPDATED — and nothing was ever rela...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
FeatureSecurityService

A feed names the stream it lists (streamGuid)

The browser's feed reloads when /topic/media/feed/<orgId> says a note was written in its own stream. A lead with no notes yet has no post whose guid names that ...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
FeatureMediaService

Relay media.feed.<orgId> to /topic/media/feed/<orgId>, guarded by org

A new post or lead note is announced on media.feed.<orgId>, and kamo-internal's MediaStream (a lead's Notes, the Clubhouse feed) listens on /topic/media/feed/<o...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
FeatureKlusterServices

Svc_media may subscribe media.feed.* to relay the org feed to the browser

SecurityService and MediaService announce a new post or lead note on media.feed.<orgId>, and the browser's feed (the lead view's notes, the Clubhouse feed) list...

Kamo·3w ago
Fixkamo-shared-library

Publish routes another stream's subject instead of pinning ours; lead notes reach the feed after commit

**************** asserted expectedStream(<own stream>) on every subject, so a subject another stream captures was refused with "expected stream does not match [...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Featurekamo-internal

AI invitees join by themselves; meeting history link; keep-AI-transcripts setting

The meeting dialog's invitee picker reads SecurityService's by-department answer under membersByDepartment (it read the top level, found nothing and never showe...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
FeatureKlusterServices

Kamo Meet bridge — Jigasi transport and endpoint, PIN dial-in on 7800, trusted entry for AI members

No user- or caller-typed text enters a dialplan expression: the room checks compare lengths and the AI's display name is filtered before it is tested (a quote i...

Kamo·3w ago
Chorekamo-marketing

Rebuild so the image carries the re-translated es ampersand label

SP99 T11: the dictionary sync re-translated the es "Billing & Payments" value that LibreTranslate had written with a quote for the ampersand. The image copies t...

Kamo·3w ago
Chorekamo-internal

Rebuild so the image carries the re-translated es ampersand labels

SP99 T11: the dictionary sync re-translated two es values that LibreTranslate had written with a quote for the ampersand. The image copies the dictionary when i...

Kamo·3w ago
Chorekamo-internal

Rebuild so the image carries the re-translated es ampersand labels

SP99 T11: the dictionary sync re-translated two es values that LibreTranslate had written with a quote for the ampersand. The image copies the dictionary when i...

Kamo·3w 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