KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
October 21, 2026
FeatureInitializerService

KamoCameras is included in Business and up, and on every universe's Premium rung and above

Owner, 2026-10-20 (IoT close-out F11): Business, Enterprise and their equivalents in the other universes. - PlatformTierMatrixMigration: Business gains KAMO_CAM...

KamoΒ·2d ago
FixInitializerService

Stop forcing a phone server onto every text conversation (SITP CARRIERSMS)

MultiInstancePhoneMigration runs on every KamoInitializer start. Its conversation step deleted each voip_conversations row without an instance (and that thread'...

KamoΒ·2d ago
October 19, 2026
FixInitializerService

KamoCameras in the entitlement catalog, on the platform's own plan only (totality test green)

KamoCameras (ServiceType 39, shipped 2026-10-13, TESTING) shipped without an AppEntitlementCatalogMigration entry, so **************** two totality checks have ...

KamoΒ·4d ago
October 18, 2026
FeatureInitializerService

Scan the OAuth server repositories (IoT SP09)

KamoΒ·5d ago
October 14, 2026
TestInitializerService

Pin com.kamo.z.shared.iot in KamoInitializer's repository list

IoT SP01 Task 6. SP00 already added the entry; only the pin is new.

KamoΒ·1w ago
October 13, 2026
FeatureInitializerService

Scan com.kamo.z.shared.cameras (merge feat/kamo-cameras)

The KamoCameras entities' package joins KamoInitializerApp's @EnableJpaRepositories list. The run that created schema camera (9 tables) was made from this on 20...

KamoΒ·1w ago
October 12, 2026
October 4, 2026
DocsInitializerService

Say that the platform org holds every app whatever its plan rows say

Completes the corrected comment over the platform-only catalog entries: the rows it describes decide nothing for the platform org itself, which ****************...

KamoΒ·2w ago
DocsInitializerService

The platform-only catalog comment says what the ladder did to each app

The comment over REPORTS, GAMIFICATION, KAMO_UNIVERSE, CHESS and HOLDEM said all five were placed where their live entitlement already was, on OWNER_UNLIMITED. ...

KamoΒ·2w ago
September 28, 2026
FixInitializerService

The platform-pricing loaders find the platform org as the top-level org, not by its short title

KamoCRMMarketBackfillLoader and KamoCRMPricingLoader looked the platform org up by titleShort = "KamoCRM". That stopped matching when the brand moved to KamoUni...

KamoΒ·3w ago
ChoreInitializerService

Delete the org-domain ownership backfill; it finished, and it verified second claims

**************** was a one-off (2026-08-28) that marked live org_domains roots ownership_verified when host routing started to require it. It ran again on every...

KamoΒ·3w ago
FeatureInitializerService

The Family, Community and Personal catalogs beside KamoCRM's business ladder

KamoUniverse sells four catalogs out of the platform org's one plan table. This lands the schema and the data for the three new ones. - UniverseColumnsMigratio...

KamoΒ·3w ago
September 25, 2026
ChoreInitializerService

Delete the lead contact-point backfill; it finished and no code scans every lead

The KamoInitializer run that ended at 18:51 PDT today logged LeadContactPointSeedRunner: complete β€” 795983 leads scanned, 1552381 contact points opened, 0 faile...

KamoΒ·4w ago
September 24, 2026
FixInitializerService

Pin kamo-shared-library 1.6.1, the version the library stays at

1bb9801 pinned 1.6.2 together with the library bump in db737a54. That bump is reverted, because about thirty services pin 1.6.1 and each build can only resolve ...

KamoΒ·4w ago
FeatureInitializerService

Migration for org_alias_domains, seeding the platform org's two

Creates **************** and seeds the platform org (is_top_level) with kamouniverse.com (default, carrying forward the old hardcoded platform.mail.domain) and ...

KamoΒ·4w ago
FeatureInitializerService

The columns and activity log the Arive integration maps

**************** (unique), the Arive link fields on lead_los_links (kind, GUID, deep link, stage, pending-since, last error) and los_sync_events. All nullable, ...

KamoΒ·4w ago
September 23, 2026
FeatureInitializerService

The Notes plan feature is "Notes & Checklists"

The Notes app holds checklists as well since 2026-09-23 and is called "Notes & Checklists" everywhere it is named. The pricing page's comparison chart takes its...

KamoΒ·4w ago
ChoreInitializerService

Scrub copies of live credentials from config and dumps

A sweep of every repo for the values of the cluster's live Secrets (2026-09-23) found copies here: the JWT signing secret as a `${JWT_SECRET:<literal>}` default...

KamoΒ·4w ago
ChoreInitializerService

No live credentials in application.yml defaults

The local-development defaults carried the database OWNER's password (${DB_PASSWORD:<literal>}), and apiservice/securityservice also the live changelog webhook ...

KamoΒ·4w ago
FeatureInitializerService

Put the app in the entitlement catalog, add-on only

**************** asserts every sold app is categorised and sits somewhere on the tier ladder, because an app the catalog does not describe lands nowhere on the ...

KamoΒ·4w ago
September 16, 2026
ChoreInitializerService

Leave unique keys to the entities instead of duplicating them

Eight migration statements created unique indexes on exactly the columns their entities already declare unique (BillingGroupMember, BillingGroup, MailboxBilling...

KamoΒ·1mo ago
ChoreInitializerService

Stop creating a plain index shadowed by the unique one

member_notification_preferences (member_id) got both a plain and a unique index from the same statement list; the unique index serves every lookup. The plain on...

KamoΒ·1mo ago
September 13, 2026
FeatureInitializerService

Webinar_notify_member, the team members copied on presenter emails

One row per (organization, team member): the Additionally Notified list on the Scheduled Webinars settings tab. MediaService blind-copies these addresses on eve...

KamoΒ·1mo ago
FeatureInitializerService

Page_transition_overrides, an organization's and a member's own page transition

One row per owner (ORG with the org id, MEMBER with the member id): a catalogue token or NULL to follow the level above, and properties for only the transitions...

KamoΒ·1mo ago
September 12, 2026
FeatureInitializerService

**************** beside the transition

A TEXT column holding each transition's properties as JSON keyed by transition id. No backfill: null means every transition's defaults, like page_transition bes...

KamoΒ·1mo ago
FeatureInitializerService

**************** ahead of every reader

A catalogue token, NULL meaning the shipped TILE_DISSOLVE, so nothing is backfilled. Order 0 because the entity maps the column from this build on, and an earli...

KamoΒ·1mo ago
FeatureInitializerService

The unique (campaign, address) index, for a fresh environment

EmailService used to create **************** on every startup; DDL on this cluster belongs here instead. Idempotent, auto-committed (YugabyteDB builds indexes o...

KamoΒ·1mo ago
September 7, 2026
FeatureInitializerService

The repeat-sound columns, for a fresh environment

EmailService runs ddl-auto: none, so neither column can appear on its own β€” the entity declares them and Hibernate reads the table happily without them, then fa...

KamoΒ·1mo ago
September 6, 2026
FixInitializerService

Drop the frozen type_id CHECK that blocked every bug thread

`media_sessions` is created by Hibernate's ddl-auto, not by a migration, so it carries the constraint ddl-auto writes for an `@Enumerated(ORDINAL)` column β€” fro...

KamoΒ·1mo ago
FeatureInitializerService

System_bug.media_session_guid, and its lookup index

The column behind a report's comment thread, matching **************** β€” VARCHAR(36), because MEDIA_SESSIONS.GUID is itself a 36-character string column and a t...

KamoΒ·1mo ago
FeatureInitializerService

Add denial_reason, and sweep the three retired status names

status_name holds a NAME read back through @Enumerated(STRING), so a row still saying TRIAGED after the constant is gone does not read as a default β€” it throws ...

KamoΒ·1mo ago
FixInitializerService

Stop the operator seed re-granting revoked platform rights

Rights taken away from a platform administrator on Platform Admins came back on their own days later, which read from the console as a save that would not stick...

KamoΒ·1mo ago
September 5, 2026
FeatureInitializerService

Seed the $99 per-seat startup fee on every paid tier

The loader passed null for setupFee on all four plans, so a freshly seeded environment priced onboarding at nothing while production charges $99 a seat β€” the ki...

KamoΒ·1mo ago
September 4, 2026
FeatureInitializerService

System_bug.published, defaulting to TRUE

The column behind the Publish flag: a god-mode operator can now file a report that stays with god mode until somebody releases it. DEFAULT TRUE is the whole re...

KamoΒ·1mo ago
FeatureInitializerService

Make hr_job_application.member_id nullable

ddl-auto adds columns; it never relaxes constraints. Flipping optional=false to true on the entity changes what the ORM believes and nothing about what the data...

KamoΒ·1mo ago
September 3, 2026
FeatureInitializerService

Email_signature_badges, and the columns that order them

The footer badge library plus footer_badges / footer_badge_spacing / footer_badge_height on email_signature_templates. A runner and not just ddl-auto for the u...

KamoΒ·1mo ago
FeatureInitializerService

Scan hr.careers, and drop the frozen work-location CHECK

Two changes, both required before the careers entities can reach the database. The @EnableJpaRepositories list is an explicit array while @EntityScan is wildca...

KamoΒ·1mo ago
September 2, 2026
FeatureInitializerService

Commerce_quotes.setup_fee

A one-off setup fee on a quote that presents a single price. The fee already existed on QuoteOption, where each alternative carries its own; a flat sheet had no...

KamoΒ·1mo ago
FeatureInitializerService

Reprice stored quote totals through the pricing engine

Quote money columns are written, not computed on read, so the two corrections that landed on 2026-09-02 β€” a unit price is a per-month rate the term multiplies, ...

KamoΒ·1mo ago
FeatureInitializerService

The columns that let an event invite its guests

Three on calendar_events, because whether a meeting invites people belongs to the meeting rather than to the moment it was saved β€” an edit six weeks later that ...

KamoΒ·1mo ago
FeatureInitializerService

Commerce_quotes.billing_basis

The per-quote snapshot of the org's quoteConversionBilling choice, so a quote keeps the terms it was raised under after an administrator changes the setting. Nu...

KamoΒ·1mo ago
ChoreInitializerService

Scan the Report Studio's repositories

**************** holds the saved views, shares, favorites, recents, schedules and schedule runs. The reports themselves are code rather than rows β€” only a membe...

KamoΒ·1mo ago
FeatureInitializerService

Columns for a market's quote contact and the per-quote snapshot

A market names its answer in QUOTE_CONTACT_MODE (+ QUOTE_CONTACT_MEMBER_ID when that answer is one explicit person), and each quote keeps the contact it was rai...

KamoΒ·1mo ago
FeatureInitializerService

Migration for KB_ARTICLE_RELATIONS

Mirrors KbArticleRelation in kamo-shared-library. Written explicitly rather than left to ddl-auto so the UID and DATE_CREATED defaults live in the database, whi...

KamoΒ·1mo ago
August 29, 2026
FeatureInitializerService

Keep every live domain routing once verification becomes mandatory

Host to organization resolution is about to require ownership_verified on the top-level domain row, so that a domain several organizations have merely named rou...

KamoΒ·1mo ago
August 28, 2026
FeatureInitializerService

The three per-member-type home-screen columns on a security model

CHILD_ORG_SECURITY_MODELS gains DEFAULT_MEMBER_HOME_SCREEN, DEFAULT_TEAM_MEMBER_HOME_SCREEN and DEFAULT_ORG_OWNER_HOME_SCREEN. Each holds HOME_SCREEN_DEFAULT (t...

KamoΒ·1mo 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