KamoCRM

Live Change Log

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

17,671
Total Changes
6,083
Features
5,346
Fixes
30
Projects
Filter by project
All Projects17,671AIService261APIService174BillingService158ConversionService110DaemonService138DocsService223ESigService91EmailService588InitializerService330KBService151KlusterServices745MCPGatewayService261MediaService604RAGService79SecurityService1,876TranslateService62VOIPService250VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,415kamo-login340kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,684kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild17CI523Chore776Docs3,257Feature6,083Fix5,346Other998Performance165Refactor278Revert23Style42Test162Upgrade1
August 10, 2026
Featurekamo-internal

Rebuild the calendar around the current moment

The page was a functional grid with the chrome doing the talking: a 3px rainbow rule under the toolbar, a second one over the content, gradient buttons, and fou...

kamo·2mo ago
FeatureInitializerService

Move calendars onto memberships and give each org a shared one

Calendars and events were owned by an account and carried no organisation. This attaches each to its owner's earliest membership — the organisation the account ...

Kamo·2mo ago
Featurekamo-shared-library

Scope calendars to the member, and add the org-wide publishing right

UserCalendar and CalendarEvent hung off USER_ID alone and carried no organisation. A user is global and a member is that user inside one organisation, so an acc...

Kamo·2mo ago
FeatureInitializerService

Hand shared address-book contacts back to their owners

EmailService now scopes every contact read to contact_books.owner_id, which leaves the contacts already sitting in an ownerless organisation-default book unreac...

Kamo·2mo ago
FeatureVOIPService

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·2mo ago
FeatureSecurityService

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·2mo ago
FeatureRAGService

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·2mo ago
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·2mo ago
FeatureMCPGatewayService

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·2mo ago
FeatureKBService

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·2mo ago
Featurekamolos

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·2mo ago
FeatureESigService

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·2mo ago
FeatureEmailService

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·2mo ago
FeatureDocsService

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·2mo ago
FeatureDaemonService

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·2mo ago
FeatureConversionService

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·2mo ago
FeatureAPIService

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·2mo ago
FeatureBillingService

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·2mo ago
FeatureAIService

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·2mo ago
August 9, 2026
FeatureKlusterServices

Unique_rowid() shim and non-public schemas in YugabyteDB

The shim is a sequence seeded at the production maximum plus a margin. The seed carries two requirements, not one: it must exceed every existing id or the first...

Kamo·2mo ago
FeatureKlusterServices

Unique_rowid() shim and non-public schemas in YugabyteDB

The shim is a sequence seeded at the production maximum plus a margin. The seed carries two requirements, not one: it must exceed every existing id or the first...

Kamo·2mo ago
FeatureKlusterServices

Deploy single-node YugabyteDB 2026.1.0.1 alongside CockroachDB

Both engines now run side by side on k1m1; CockroachDB is untouched and remains the rollback path. Three things that were not obvious: - The Helm chart versio...

Kamo·2mo ago
FeatureKlusterServices

Deploy single-node YugabyteDB 2026.1.0.1 alongside CockroachDB

Both engines now run side by side on k1m1; CockroachDB is untouched and remains the rollback path. Three things that were not obvious: - The Helm chart versio...

Kamo·2mo ago
Featurekamo-internal

Split the access log and its detection rules into sub-tabs

The rules that decide what gets flagged were an accordion below the grid — collapsed by default, so the configuration was something you had to know was there, a...

kamo·2mo ago
Featurekamo-internal

Back-to-home arrow on the main workspace headers

Carries the settings-page arrow across the rest of the app: Accounts, Leads, Commerce, Marketing (all four tabs, via the shared layout), Knowledge Base, HR, Net...

kamo·2mo ago
Featurekamo-internal

Explanatory panels on every administrator bar link

Somebody who created their organization ten minutes ago meets nine links they have no way to read. Hovering or focusing one now unfurls a panel that answers, in...

kamo·2mo ago
Featurekamo-internal

Tighten the administrator bar — org label, short audit names, no gap

Three changes to how the bar reads at nine links: The team-members entry now wears the org's own plural label from Behavior & Labeling, so an org that calls th...

kamo·2mo ago
Featurekamo-internal

Back-to-home arrow left of every settings page title

Settings pages had no way back to the launchpad short of the nav rail. SettingsView's optional backHref now defaults to home and renders unconditionally, so the...

kamo·2mo ago
Featurekamo-internal

The rest of essential setup on the administrator bar

Security Roles, Departments and Job Titles join the configuration group, left of the audit pair. They are the three Essential Setup tabs the bar was missing — B...

kamo·2mo ago
Featurekamo-internal

Access blocks in the administrator bar, audit links to the trailing edge

Access Blocks and System Access Logs are the two screens on the bar that answer 'who got in and who did not' rather than configuring anything, so they group tog...

kamo·2mo ago
Featurekamo-internal

Name and edit address books, and rebuild the page around them

Adding a book POSTed a hard-coded placeholder name with no prompt, and nothing anywhere could rename one — so every book an org had was called the same thing, p...

kamo·2mo ago
FeatureEmailService

Persist and serve the whole contact, not just its name

The REST layer serialised the JPA entities directly. A Contact has no mapping to its emails, phones, addresses, organisations, URLs, IMs or relationships — thos...

Kamo·2mo ago
Featurekamo-internal

Administrator bar above the launchpad cards

Five screens an org administrator opens constantly — team members, behavior & labeling, stats & costs, apps & features, system access logs — each two or three c...

kamo·2mo ago
FeatureBillingService

Read imaging usage from one deduplicated pass

Follows the shared-library change to one charge per distinct file per organization. Both the summary and the daily snapshot writer take a single imaging pass an...

Kamo·2mo ago
Featurekamo-shared-library

Count each file once per organization, not once per upload

Billing was per imgs record, so an organization that uploaded the same file five times was charged five times. The owner's rule is one charge per distinct file ...

Kamo·2mo ago
Featurekamo-internal

Skip the upload when the platform already has the file

Sending the same video to three people meant three full uploads. Dedup collapsed them into one stored object, but only once each transfer had finished — so the ...

kamo·2mo ago
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·2mo ago
Featurekamo-internal

Show generated preview storage as its own line

Thumbnails and preview images now count toward the organization's total, so the client should be able to see what they cost rather than find them folded into an...

kamo·2mo ago
FeatureSecurityService

Measure the thumbnails and tracks generated from each file

Object keys are content-addressed as **************** so the segment before the first underscore identifies the file a derivative came from. Sizes are summed pe...

Kamo·2mo ago
FeatureInitializerService

Schema for measured thumbnail and track storage

img_dat_derivatives records, per stored file, the real byte size of everything Kamo generated from it. It replaces img_dats.THUMB_FILE_SIZE as the source for th...

Kamo·2mo ago
Featurekamo-shared-library

Bill generated thumbnails to the organization

Thumbnails and per-channel tracks are storage an organization's uploads cause, so on the owner's instruction they now count toward that organization's total rat...

Kamo·2mo ago
Featurekamo-internal

Let a member keep a video or audio attachment, not just play it

The player answers one intention. Wanting the file on disk is a different one, and video and audio were the two attachment kinds with no way to do it — a docume...

kamo·2mo ago
Featurekamo-internal

Show branding and Docstive document storage

Both are written straight to the object store with no size recorded in the database, so they read as zero until a sweep measures them. They now have their own l...

kamo·2mo ago
FeatureSecurityService

Measure branding and Docstive document storage

These are the only two things an organization stores that carry no size anywhere in the database — branding assets go straight into the public bucket under the ...

Kamo·2mo ago
FeatureInitializerService

Schema for object-store-only storage measurement

object_storage_days records what a sweep reads back from MinIO for the two things that carry no size in the database: branding assets and the docs workspace. Bu...

Kamo·2mo ago
Featurekamo-shared-library

Count branding and Docstive document storage

Almost everything an organization stores records its own size somewhere — an imgs row, a kb_media row, a mailbox measurement. Two things do not. Branding assets...

Kamo·2mo ago
Featurekamo-internal

Show text message attachment storage

MMS attachments live inline in the database as data: URIs rather than as files, so they had no size record and were never counted. They now have their own line.

kamo·2mo ago
Featurekamo-shared-library

Count text message attachments

MMS attachments are stored, and were not counted. They are also not what they look like: VoipMessageService encodes the attachment as a data: URI and writes it ...

Kamo·2mo ago
Featurekamo-internal

Show every storage category separately

Call recordings, voicemails, chat attachments, HR resources and marketing materials each get their own line instead of sharing one "Documents and images" row wi...

kamo·2mo ago
Featurekamo-shared-library

Count each kind of stored file as its own category

Call recordings, voicemails, chat attachments, HR resources, marketing materials, meeting recordings and every kind of document are all rows in imgs, distinguis...

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