KamoCRM

Live Change Log

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

18,392
Total Changes
6,527
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,392AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,692kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,527Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
September 28, 2026
FixSecurityService

A new commit log is translated at once, not behind the sweep's backlog

The first translation of a commit log and the sweep's retries shared one three-thread executor, first come first served. With the SP99 T6 repair's 326 commit lo...

Kamo·1mo ago
ChoreSecurityService

Rebuild so a lead that was ever assigned or opened can be deleted

SecurityService's DELETE /api/security/leads/{id} runs the shared library's LeadService.deleteLead. The fix that releases the lead's assignment history, comment...

Kamo·1mo ago
FixSecurityService

The translation recount is the first statement of its own transaction

A locale save was an upsert and then a recount that reads the commit log's rows, in one transaction. Yugabyte restarts a read transparently only when it is the ...

Kamo·1mo ago
FixSecurityService

One pod at a time translates a commit log, and a finished one is not redone

Both SecurityService pods run the translation sweep: its lock lasts only as long as the dispatch. Each took up the same 50 commit logs, and a pod's in-flight se...

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

The sign-in check is reachable from the internet edge; the secret is its only gate

The javadoc said /api/internal/dav/sign-in was reached over ClusterIP, as if that were the only way in. It is not: klusterservices **************** routes inter...

Kamo·1mo ago
TestSecurityService

Pin the bare cookie domain against Tomcat's own cookie processor

bc54945 stopped logout clearing *** on ".kamocrm.com", which Tomcat's RFC 6265 processor refuses by throwing from addCookie: logout answered 500 after the sessi...

Kamo·1mo ago
FixSecurityService

Close the AI identity edge cases the SP02 review left open

- A never-hired AI relabelled a person no longer keeps ai_state and the pause columns (master 6.1: NULL for a person). They are written only by SQL, so the ...

Kamo·1mo ago
FixSecurityService

A lead you may not open takes no status change and no note

PUT /api/security/leads/{id} and POST /api/security/media/posts checked only the lead's organization, so a member without VIEW_UNASSIGNED_LEADS could change the...

Kamo·1mo ago
FixSecurityService

CalDAV and CardDAV sign in with a username and password, through every sign-in gate

EmailService's DavAuthFilter posted Basic credentials to **************** a route that never existed (405), so since 2026-03-19 no phone (iOS, DAVx5) could add ...

Kamo·1mo ago
FixSecurityService

Clear the session cookie on the bare apex, not ".apex"

Logout built the cookie domain as ".kamocrm.com". Tomcat's RFC 6265 cookie processor refuses a leading dot and throws, so logout answered 500 "Logout failed" af...

Kamo·1mo ago
FixSecurityService

A platform apex can't be removed from the DNS page

The platform organization gained kamouniverse.com as a second root domain, and the DNS page then offered "Remove" on kamocrm.com. Deleting it took kamocrm.com a...

Kamo·1mo ago
FixSecurityService

Two more root-domain picks follow OrgDomains.primaryDomain

BranchTypeController's parentRootDomain (the create-branch wizard's web-alias zone) and PortalAccountController's api.<root> (borrower-portal sign-in) each took...

Kamo·1mo ago
FeatureSecurityService

Organizations are created in a KamoUniverse universe and bill from its catalog

KamoUniverse sells Business, Family, Community and Personal plan ladders from the platform org. SecurityService decides which ladder an organization is on, and ...

Kamo·1mo ago
FeatureSecurityService

Kamouniverse.com is a platform apex, not a tenant domain

login.kamouniverse.com and register.kamouniverse.com become the platform's KamoUniverse sign-in and sign-up doors, backed by a root org_domains row on the platf...

Kamo·1mo ago
September 27, 2026
FixSecurityService

Watch and Take over open their connection in the gateway's client

Guacamole 1.5.5's client reads the #/client/<id> fragment with atob (one character per byte) and btoa's every connection name it lists, so a name outside Latin-...

Kamo·1mo ago
FeatureSecurityService

List the org's active AI members

Kamo·1mo ago
FeatureSecurityService

Internal resolve for KamoAI and the charter source behind SP02's routes

I2 POST **************** answers S3's resolution for the org it is given, behind the KamoAI secret, with S3's draft reader and S3's org-checked department walk ...

Kamo·1mo ago
FeatureSecurityService

Member charter read and edit; nobody edits their own

S4 reads a member's effective charter, S5 its own items with whether the caller may change them, and S6 replaces them (diffed by id). A write runs in MemberChar...

Kamo·1mo ago
FeatureSecurityService

Record and revoke AI call consent per phone number

Kamo·1mo ago
FeatureSecurityService

Seven job templates and the templates endpoint

Kamo·1mo ago
FeatureSecurityService

Catalogue and resolve endpoints for the charter editor

S1 GET /api/security/charter/catalog and S3 POST /api/security/charter/resolve (spec 4.8). A member draft refused by S6's edit rule answers with S6's bodies (re...

Kamo·1mo ago
FeatureSecurityService

Write-time checks for hide markers and escalation targets

A refusal leaves a caller's transaction committable, so the member charter PUT still answers 400; a hide marker cannot target another hide marker; a malformed e...

Kamo·1mo ago
FeatureSecurityService

Load a subject's layers and resolve with provenance

Kamo·1mo ago
FeatureSecurityService

Internal auth and charter access rules

CharterInternalAuth applies SP02's KamoaiInternalAuth rule to the same secret, so the per-handler guard and the prefix interceptor cannot disagree. CharterAcces...

Kamo·1mo ago
DocsSecurityService

Charter item tables for KamoAI SP03

Kamo·1mo ago
September 25, 2026
FixSecurityService

A loan Kamo creates now links, and a refused one says why on the lead

Ian's Create Loan reached Arive, was refused inside the Zap, and Kamo never knew: Zapier had already answered 200, and Arive fires no new_loan for a loan made t...

Kamo·1mo ago
FixSecurityService

A hire-step owner answering 401 has not shipped yet, so the step waits

VOIPService and ComputeService answer any path they do not serve from their session layer with 401, so Ava's EXTENSION and WORKSTATION steps went FAILED before ...

Kamo·1mo ago
FixSecurityService

An AI member never founds an organization

The second door to IMPORTANT-1 of the SP02 final review. POST /api/security/organizations needs no right for a standalone organization: any signed-in user may c...

Kamo·1mo ago
FixSecurityService

Security-model writes require CONFIGURE_SYSTEM

Closes the SP02 final review's IMPORTANT-2. POST /api/security/models, PUT and DELETE /api/security/models/{id} and PUT /api/security/master-model only resolved...

Kamo·1mo ago
FixSecurityService

An AI member is never an owner or a platform operator

Closes the door around the AI never-grantable floor that the SP02 final review found (IMPORTANT-1). Platform rights and the owner flag are not RoleRightTypes, s...

Kamo·1mo ago
FixSecurityService

A verification resend that names its account goes to the account's own org

An organization with no domain has no register host of its own, so its members land on register.<platform apex>, whose host names the platform. The resend endpo...

Kamo·1mo ago
FeatureSecurityService

Hire-step orchestrator with prerequisites, budget and replaceable handlers

One step's database failure no longer ends the sweep or a member's run: the step is logged and retried once due, and the steps behind it still run.

Kamo·1mo ago
TestSecurityService

Accept either read-timeout message in the owner-client test

OkHttp arms the socket's SO_TIMEOUT ("Read timed out") and its own watchdog ("timeout") with the same 300 ms; either can fire first, so the assertion failed abo...

Kamo·1mo ago
FeatureSecurityService

MANAGER step and remote clients for every owner hire step

MANAGER and the mailbox/extension copy-back write one column each with a conditional UPDATE (only while empty) instead of saving the member entity: the sweep's ...

Kamo·1mo ago
FeatureSecurityService

Hire-step owner client with bounded timeouts that never throws

A final RuntimeException catch keeps the no-throw promise when the HTTP library rejects a URL before any I/O (a blank base URL leaves a relative one) or cannot ...

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