KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
September 25, 2026
Featurekamo-shared-library

Empty ineligible members on every write path and notify rights-change listeners

A chunk notifies its AI members before its humans, so a supervisor cascade's fresher recalculation of an AI is that AI's last notification.

Kamo·4d ago
Featurekamo-shared-library

The nine KamoAI notification kinds

Kamo·4d ago
Featurekamo-shared-library

Capability and provider-type catalogs, typed attribute codec

The codec also refuses, as invalid_attribute, a null list item (a bare NullPointerException before), a list or object where text belongs (stored as the text "[e...

Kamo·4d ago
Featurekamo-shared-library

Compose manifest, JavaScript text semantics and icon URIs

ComposeText also ports logoVariants.ts (PNG logo rungs, SizedLogo) and badges.ts (uploaded-badge ?h= scaling), and follows JavaScript exactly where Java differs...

Kamo·4d ago
Testkamo-shared-library

Compose manifest, fixtures and 232 goldens from the legacy renderers

The fixtures carry the logo ladders (full: header rung with ?v=, a laddered logo badge; company: header and signature rungs without a revision) and the uploaded...

Kamo·4d ago
Featurekamo-shared-library

Registry entities, capability/value/price/opt-out rows, repositories

AiProvider and AiModel gain the registry columns (scope, hosting, auth, facts, platform key, lifecycle, origin); provider type and cost tier map through the dig...

Kamo·4d ago
Featurekamo-shared-library

Task, comment, link, journal and handoff wire shapes

Kamo·4d ago
Featurekamo-shared-library

AI signature disclosure on the signature field config

Kamo·4d ago
September 24, 2026
Fixkamo-shared-library

Keep kamo-shared-library at 1.6.1, the one version every consumer can resolve

db737a54 moved the library to 1.6.2, and only emailservice and initializerservice moved with it. About thirty other services pin 1.6.1. Their CI clones this rep...

Kamo·4d ago
Featurekamo-shared-library

Add org_alias_domains, the per-org form of the platform mail domain

Generalizes the single hardcoded platform.mail.domain (kamouniverse.com, and only for the platform org) into a table any org can hold any number of rows in. Ema...

Kamo·4d ago
Featurekamo-shared-library

One seat rule for the console and every service that enforces it

The resolver reads the member with its organization fetched and opens no transaction of its own, so a seat is decided correctly on a thread with no persistence ...

Kamo·4d ago
Featurekamo-shared-library

Layout choices for a published loan application

Three columns on LEAD_VENDOR_PRODUCTS, chosen on the publish dialog and read by kamo-apps to lay the public mortgage form out: - APPLICATION_LAYOUT NORM...

Kamo·4d ago
Featurekamo-shared-library

Arive as a second external LOS, and a provider seam that is real

Arive is reachable only through its invite-only Zapier app, so the connection is Zapier in both directions: Kamo posts commands (create loan, update loan stage,...

Kamo·5d ago
September 23, 2026
Fixkamo-shared-library

An org domain's DKIM private key never serializes

5de57705 added OrgDomain.dkimPrivateKey — the key that signs a domain's transactional mail — with a comment saying it is never sent to the browser, but nothing ...

Kamo·5d ago
Fixkamo-shared-library

History records what happens after a lead exists, not its starting form

recordCreated wrote the CREATED row and then diffed the new lead against an empty snapshot, so every non-null starting field became a FIELD_CHANGED row — and th...

Kamo·5d ago
Otherkamo-shared-library

Add a per-org primary application, and an APPLY domain alias

LeadVendorProduct gains isPrimaryApplication: at most one published application per org is "primary" and is the one kamo-apps renders at the root of the org's a...

Kamo·5d ago
Featurekamo-shared-library

DKIM key fields for an org domain's transactional mail

Adds **************** to org_domains, mirroring the spf_verified/spf_checked_at pair already there — so a domain can hold a generated DKIM keypair and whether i...

Kamo·5d ago
Performancekamo-shared-library

CommitLog carries a maintained translation_count

Adds CommitLog.translationCount and **************** the library side of replacing the changelog translation-backfill sweep's GROUP BY .. HAVING scan with a pla...

Kamo·5d ago
Performancekamo-shared-library

Member_rights_applied writes only the difference, and reads roles in bulk

Two related fixes to MemberRightsAppliedService, both in the same file: 1. **************** (via recalcChunk) and **************** unconditionally deleted a...

Kamo·5d ago
Performancekamo-shared-library

Stop eager-fetching LeadVendorProduct's org chain for a single-id read

findById() on LeadVendorProduct pulls its default-EAGER vendor, which itself eager-fetches its own org AND its market (which eager-fetches ITS org again) — and ...

Kamo·5d ago
Performancekamo-shared-library

Batch two translation lookups the planner was doing badly per row

kbservice's public KB endpoints and its translation-retry sweep both asked KbArticleTranslationRepository one row at a time. Production's pg_stat_statements sho...

Kamo·5d ago
Fixkamo-shared-library

A gift card's balance is editable again, by whoever may manage pricing

19505faf stopped updateGiftCard from reading currentBalance so a member of one org could not rewrite another org's card by uid. The org-scoped lookup already cl...

Kamo·5d ago
Fixkamo-shared-library

Org-scope RetailService and ****************

Every get/update/delete-by-uid handler under CommerceMarketController's retail sub-resources (categories, brands, attributes/values, images, variants, tags, rev...

Kamo·5d ago
Fixkamo-shared-library

UpdateMemberAccess rejects an editor and target in different orgs

**************** compared only security levels and the editor's owner flag, never the two members' organizations. Its one caller today (SecurityService's Member...

Kamo·5d ago
Fixkamo-shared-library

RegisterExistingDocument checks the dat's org, and a template can be found by imgId within one

Two org-scoping gaps the esig/imaging audit found, both in shared entry points other services build on: - **************** (the conversion service's dedup-skip...

Kamo·5d ago
Fixkamo-shared-library

Count an org's unconfirmed talent-alert rows for the anonymous form's cap

DocsService's public talent-alert subscribe endpoint sends a confirmation email on every accepted call, with no limit on how many not-yet-confirmed rows one org...

Kamo·5d ago
Fixkamo-shared-library

UpdateDocType now requires the doc type to belong to the document's own org

ImageService.updateDocType loaded the target ImgDocType by UUID alone; requireEditableAndOwned proves the caller may edit the Img, but says nothing about whose ...

Kamo·5d ago
Fixkamo-shared-library

Org-scoped counterparts for the thumbnail-backfill candidate queries

DocsService's /backfill-thumbnails admin endpoint selected candidates from **************** (platform-wide, no organization predicate) or, as a last resort, a r...

Kamo·5d ago
Featurekamo-shared-library

The Notes app is "Notes & Checklists"

The Notes app holds checklists as well since 2026-09-23 (steps ticked off as they are done, a step that waits until the steps before it are finished, a checklis...

Kamo·5d ago
Featurekamo-shared-library

A notification can say whose doing it is

MemberNotification gains ACTOR_MEMBER_ID (INT8) and ACTOR_NAME (255): the member who caused it - who dealt you in, whose meeting is starting, who wrote to you -...

Kamo·5d ago
Fixkamo-shared-library

UpdateDocType now requires the doc type to belong to the document's own org

ImageService.updateDocType loaded the target ImgDocType by UUID alone; requireEditableAndOwned proves the caller may edit the Img, but says nothing about whose ...

Kamo·5d ago
Fixkamo-shared-library

Org-scoped counterparts for the thumbnail-backfill candidate queries

DocsService's /backfill-thumbnails admin endpoint selected candidates from **************** (platform-wide, no organization predicate) or, as a last resort, a r...

Kamo·5d ago
Fixkamo-shared-library

Count an org's unconfirmed talent-alert rows for the anonymous form's cap

DocsService's public talent-alert subscribe endpoint sends a confirmation email on every accepted call, with no limit on how many not-yet-confirmed rows one org...

Kamo·5d ago
Featurekamo-shared-library

Audio uploads pass the MIME check, and slides carry media metadata

Every audio upload but MP3 was refused as a MIME mismatch. An upload is accepted only when the browser's type and Tika's sniff resolve to the same ImageMimeType...

Kamo·5d ago
Fixkamo-shared-library

A Hosted Computer is never provisioned automatically

Hosted Computers was reachable by both automatic provisioning paths, and either one would have put it in front of every organization on the platform at once. F...

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