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
October 18, 2026
FixMCPGatewayService

A scheduled report reaches a colleague who signs in on another domain (SITP TP16 live smoke)

reports_schedule judged a colleague by the organization's mail domains alone, so in sp00verify the owner's own sign-in address was refused as an outsider. A rec...

Kamo·3w ago
FixSecurityService

Subscription records, market lists and order notes reach only the caller's organization (SITP TP17)

SubscriptionService reads a subscription, its order, invoice and agreement by uid alone, in any tenant. POSController now checks the record is the session organ...

Kamo·3w ago
FixMCPGatewayService

Binders_create sends what CreateBinderRequest reads; scripts_create names a market by its leads_list_markets id (SITP TP14 live smoke)

DocsService refused every binders_create: CreateBinderRequest's primitive isTemplate binds as "template", so the body's isTemplate was an unknown field (400). A...

Kamo·3w ago
FixBillingService

Billing accounts answer to VIEW_ORG_BILLING / MANAGE_ORG_BILLING, and the listing shows a member only their own (SITP TP02)

BillingService authorized 'own account or organization owner' and never consulted a right, so the owner could not hand billing to an administrator or an SI. Acc...

Kamo·3w ago
FixSecurityService

State licences are read and replaced only within the caller's organization (SITP TP16)

GET/PUT **************** found the member by id alone, so a holder of STATE_LICENSING_VIEW_ALL / EDIT_ALL in one organization could read, replace or delete anot...

Kamo·3w ago
FixEmailService

Email templates and the org calendar/contacts connection take MANAGE_EMAIL_SETTINGS (SITP TP02)

EmailTemplateController and EmailTemplateCategoryController checked a session alone: any member could list, read, preview, create, edit, archive, duplicate or r...

Kamo·3w ago
Fixkamolos

KamoLOS checks the PLOS right and the organization on every route, and opens a one-time-key door (SITP TP02)

KamoLOS enforced no right: kamo-internal's /api/los proxy was the only gate. LosRightsFilter now applies the proxy's own requiredRight() table (LosRights) to ev...

Kamo·3w ago
Fixkamo-internal

The Interaction Center and the hexheads stand aside for a guided tour too

Follow-up to 2363d832, which cleared the dock windows. Two more surfaces could still sit in the spotlight: - The Interaction Center. A tour step (Online Meetin...

Kamo·3w ago
FixESigService

Sending for signature takes EDIT_DOCUMENTS and reading a template takes VIEW_DOCUMENTS (SITP TP02)

POST /api/esig/envelopes (create and send) checked no right, so any org session could send any template out for signature; it now takes EDIT_DOCUMENTS, the righ...

Kamo·3w ago
FixMCPGatewayService

Chat_send_file posts a text document DocsService typed octet-stream as text/plain (SITP TP13)

DocsService records Markdown, YAML, logs and other text without an ImageMimeType as application/octet-stream, which chat's attachment allow-list refuses. A docu...

Kamo·3w ago
FixKBService

Review steps stay in the caller's organization; pins take VIEW_KB_ARTICLES (SITP TP14)

submit-review, approve and reject named an article by guid alone, so a member holding CREATE_/REVIEW_KB_ARTICLES in one organization could move another organiza...

Kamo·3w ago
FixDocsService

Binders and the share lists take VIEW_DOCUMENTS (SITP TP14)

Every BinderController route (list, get, create, scratch, update, duplicate, delete, items, reorder, shares, render) took a session alone, so a member without V...

Kamo·3w ago
FixMediaService

Webinar booking checks its rights and the type's organisation; an SI brings SIs into its own meetings (SITP TP12)

Owner decision 5 (security gaps fixed with the tools that use them): - /api/webinar: booking (available types, bookable times, a type's sessions, schedule, join...

Kamo·3w ago
FixDocsService

/imaging/download answers its bytes again instead of 500 (SITP TP13)

Since d1a8762 the download body was a StreamingResponseBody inside the method's ResponseEntity<?>. Spring hands a StreamingResponseBody to its streaming handler...

Kamo·3w ago
FixMCPGatewayService

Files_upload sends the type and digests ConversionService checks (SITP TP13)

ConversionService detects a file's type from its bytes and name and refuses a declared type that differs, then compares the client's Blake3 and SHA3-256 digests...

Kamo·3w ago
FixMCPGatewayService

Files_upload files into My Docs by its ordinal (SITP TP13)

ConversionService refuses an upload whose metadata names no assocType (values()[assocType]), and its own no-metadata default (4) is MEET_RECORDING's ordinal. fi...

Kamo·3w ago
FixSecurityService

Rights on the session-only controllers, with the grant backfill (SITP TP01)

@RequireRight (any-of, tenant RoleRightType) enforced by TenantRightInterceptor before the handler, the tenant counterpart of @RequirePlatformRight: no session ...

Kamo·3w ago
Fixkamo-internal

The quick-insert lists and renders templates through VOIPService's members' door (SITP TP11)

/api/voip/sms/templates is X-Internal-Auth only, so no browser session reached it and the popover always listed nothing. /api/voip/sms/text-templates takes the ...

Kamo·3w ago
FixSecurityService

Rights on the lead doors the SI tools use, and the caller's own callbacks due (SITP TP10)

- PUT /leads/{id} takes EDIT_LEADS; a create that assigns someone else takes ASSIGN_LEADS - the lead pool (/leads/available, /leads/accept) takes VIEW_LEADS or ...

Kamo·3w ago
FixVOIPService

One's own text numbers need the Phone tab's rights, not a bare session (SITP TP11)

ACCESS_VOIP, or MANAGE_EXTENSIONS / MANAGE_VOIP_SETTINGS: the rights settings/member opens its Phone tab on, so nobody who sees the card today loses it.

Kamo·3w ago
FixVOIPService

The members' text-template door refuses flat {error, code, reason} (SITP TP11)

The shape every member-facing VOIPService refusal has, so the Tool Plane and the browser read the reason without unwrapping a nested object.

Kamo·3w ago
FixEmailService

A shared-mailbox send meets the SI guards; message labels take ?folder= (SITP TP13)

A send as a shared mailbox skipped the checks EmailController#sendEmail runs: an own-domain recipient that is nobody (422 RECIPIENTS_UNKNOWN), the SI thread-tur...

Kamo·3w ago
Fixkamo-shared-library

IotConnectionCheck is append-only without @Immutable (every link failed with a 500)

Hibernate 6.5 reads the database-generated checked_at back after the INSERT and then sets a lock mode on the entry; an immutable entry refuses it **************...

Kamo·3w ago
FixRAGService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixMCPGatewayService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixKBService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
Fixkamolos

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixESigService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixEmailService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixDocsService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixDaemonService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixBillingService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
FixAIService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·3w ago
Fixkamo-shared-library

Keep hook-token and share-token hashes out of JSON; the OAuth secret prefix is a label

**************** was red on main: **************** and previousHookTokenHash, **************** and previousHookTokenHash, and IotShare.tokenHash had no @JsonIgn...

Kamo·3w ago
Fixkamo-login

No log line carries the password or the one-time key

/api/login logged the form it forwards to SecurityService verbatim (`username=…&password=<clear text>&***Payload=…`) and the redirect URL SecurityService answer...

Kamo·3w ago
Fixkamo-internal

The history's "Opt-out not recorded" chip in the primary colour (info failed contrast), and channel chips one width so the addresses line up

Follows b93576e8. Found by the component-harness screenshots and axe (color-contrast on the info-coloured chip). Tests: DoNotBlockTab.test.tsx.

Kamo·3w ago
Fixkamo-internal

A guided tour starts on a clear screen — dock windows go away as hexheads, and one that covers the highlight mid-tour follows

A chat that popped up at sign-in sat over the elements the tour pointed at, so the spotlight was drawn round the chat window instead of the lead search, the fil...

Kamo·3w ago
Fixkamo-marketing

The phone number ran under the language flag

The nav row was capped at 1280px, which left the phone cell 82px between Resources and the language button at every desktop width. The number is ~95px and nowra...

Kamo·3w ago
Fixkamo-marketing

The phone number ran under the language flag

The nav row was capped at 1280px, which left the phone cell 82px between Resources and the language button at every desktop width. The number is ~95px and nowra...

Kamo·3w ago
Fixkamo-internal

The nav's Voicemail row opens the softphone on voicemail, not the dialpad

The row dispatched a plain tool:open, so a new softphone started on the dialpad and an open one was only raised. It now opens with initialTab 'voicemail' (throu...

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