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 28, 2026
Fixkamo-apps

The E-Mail app's description is the shared library's current one, not "Host your email with KamoCRM directly."

These TypeScript enums mirror kamo-shared-library's AppType and ServiceType. The Java source's EMAIL description was reworded ('Read, send and manage your organ...

Kamo·8h ago
FixEmailService

The groupware provider finds a series by its UID as its master

SP98-F-3. CalendarService.findEventByUid read "the one row with this UID" in a calendar, and an edited instance of a series is a row of its own under the series...

Kamo·8h ago
FixEmailService

An inbound invitation answers with its summary, as the account that received it

SP98-F-5. **************** returned the CalendarEvent entity, whose attendees point back at their event, so writing it recursed until the stack overflowed; it n...

Kamo·8h ago
FixEmailService

Address books are found, and reached only by their owner with the web's rights

SP98-F-4. CardDAV wrote resourcetype as empty text for the home, every book and every card, so no client ever found an address book; a book is now *************...

Kamo·8h ago
FixEmailService

A calendar edit changes only what it sends; a new one without a zone takes the member's

The calendar create and edit bound the UserCalendar entity, whose defaults (zone UTC, visible, sort order 0) stood in for every field a body left out. KamoMobil...

Kamo·8h ago
FixKlusterServices

The meeting bridge trusts LiveKit from k3m1's node address too

livekit-sip is hostNetwork on k3m1, and k3m1 reaches 192.168.4.22 over its eno50 cable (192.168.4.22 via 10.0.50.0 dev eno50 src 10.0.50.1), so FreePBX sees eve...

Kamo·8h ago
FixKlusterServices

An AI workstation goes to sleep with nothing on its desktop drawing

A page still drawing when the sleep image is written made the wake take minutes. SP11 Task 30's workstation slept with Kamo's sign-in page open (a full-screen z...

Kamo·8h ago
FixSecurityService

An address on either platform apex signs in to the account holding its twin

The owner signed in on login.kamouniverse.com with the brand's new address and was told "User does not exist". The account's address is Sage@KamoCRM.com. Since ...

Kamo·8h ago
Fixkamo-internal

An AI in a meeting is shown as such, and the console offers only to take it out

A meeting is heard only by its participants (SP14 D9), and kamoai-service now refuses listening, talking, whispering and taking over a meeting call (409 MEETING...

Kamo·9h ago
Fixkamo-internal

An AI in a meeting is shown as such, and the console offers only to take it out

A meeting is heard only by its participants (SP14 D9), and kamoai-service now refuses listening, talking, whispering and taking over a meeting call (409 MEETING...

Kamo·9h ago
Fixkamo-marketing

The demo page books the webinar type under its KamoUniverse title or its old one

The page found its webinar type by the exact title "Schedule a KamoCRM Product Demo". That row is being retitled for the brand move, and an exact match would ha...

Kamo·9h ago
FixEmailService

An alias goes only to a member of the caller's own organization

POST /api/email/aliases took any memberId: an administrator could create an alias in their organization that forwards to another tenant's member, and read that ...

Kamo·9h ago
FixEmailService

Only an open god-mode window bypasses a tenant right, never GD alone

Every EmailService rights check let a session with GD through ("GD passes everything"), but GD is god-mode ELIGIBILITY, permanently true for the operators who h...

Kamo·9h ago
Fixkamo-signer-monorepo

The signer's theme fallback is kamouniverse.com, and its untitled page says KamoUniverse

- @kamo/theme PLATFORM_APEX, the theme host used when the page has no hostname to take an apex from (server render, a bare host), is kamouniverse.com, the p...

Kamo·9h ago
FixVOIPService

Settings voicemail plays a FreePBX message from its paired upload

Settings -> Phone -> Voicemails plays each row through /voicemails/{id}/audio, which asked the provider for the audio. FreePBX serves no voicemail audio over an...

Kamo·9h ago
FixSecurityService

A like is stamped, so it saves

media_obj_reports.date_created is NOT NULL, and the like was built without it: @ColumnDefault only shapes the DDL, so Hibernate wrote NULL and every like failed...

Kamo·9h ago
FixAIService

Spend a WebSocket one-time key with one GETDEL

spendOneTimeKey read the key and then deleted it, so two handshakes racing with the same key inside its 30 s life could both read it and both open a socket for ...

Kamo·9h ago
FixKBService

KamoUniverse is a stop word for related-article suggestions

KbArticleRelationService matches articles on their significant terms and already drops the platform's own names ("kamocrm", "kamo") because every help article s...

Kamo·9h ago
FixESigService

A signing page's logo falls back to theme.kamouniverse.com

EsignBrandingService's asset host of last resort, used for an organization with no live domain of its own, was a private "kamocrm.com" literal. It is **********...

Kamo·9h ago
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·9h ago
Fixkamo-internal

The setup page opens on kamouniverse.com and no longer offers to delete a platform domain

"Change domain" on /setup/dns for the platform organization showed only "SecurityService error". The button deletes the domain in use and then asks for a new on...

Kamo·9h ago
Fixkamo-internal

The setup page opens on kamouniverse.com and no longer offers to delete a platform domain

"Change domain" on /setup/dns for the platform organization showed only "SecurityService error". The button deletes the domain in use and then asks for a new on...

Kamo·9h ago
FixDaemonService

The scenery sampler identifies as kamouniverse.com; the steward test follows the platform console

- FaunaClient's User-Agent to GBIF named https://kamocrm.com as the product's contact URL; it names https://kamouniverse.com, the platform's primary apex. - S...

Kamo·9h ago
FixBillingService

The Enterprise refusal names KamoUniverse

"The Enterprise plan is arranged directly with KamoCRM and cannot be selected here. Contact us and we will set it up for you." is echoed verbatim to the custome...

Kamo·9h ago
FixMCPGatewayService

An org's alias mail domain is internal on both platform apexes

kamouniverse.com is now the platform's primary apex (kamo-shared-library 0e8cf90f), and **************** moved with it. - ForwardedHosts.internalDomains (the e...

Kamo·9h ago
Fixkamo-internal

A post or note is edited, liked and deleted by its own id

Every item of a feed (the Clubhouse, a lead's or a pipeline record's notes) carries its stream's guid, so PostCard's edit, like and delete went to /posts/<strea...

Kamo·10h ago
Fixkamo-internal

Add Lead goes to the list when its creator may not open the new lead

A lead created with "Auto Assign / Unassigned" joins the assignment pool, owned by nobody, and the lead page refuses a member without VIEW_UNASSIGNED_LEADS on a...

Kamo·10h ago
Fixkamo-internal

A post or note is edited, liked and deleted by its own id

Every item of a feed (the Clubhouse, a lead's or a pipeline record's notes) carries its stream's guid, so PostCard's edit, like and delete went to /posts/<strea...

Kamo·10h ago
Fixkamo-internal

Add Lead goes to the list when its creator may not open the new lead

A lead created with "Auto Assign / Unassigned" joins the assignment pool, owned by nobody, and the lead page refuses a member without VIEW_UNASSIGNED_LEADS on a...

Kamo·10h ago
FixTranslateService

Guard ampersands for every spelling of Spanish, keyed on the resolved language

guardAmpersands compared the caller's raw targetLang with {"es"}, so "ES", "es-419" or "es_MX" reached the same en->es model without the guard and came back wit...

Kamo·10h ago
FixVOIPService

Phone OAuth hops return the platform's members to internal.kamouniverse.com

kamouniverse.com is the platform's primary apex (kamo-shared-library 0e8cf90f). Sign-in ranks it first for the platform organization, the one organization holdi...

Kamo·10h ago
FixMediaService

The bridge dials the room Meet uses; an AI joins a future meeting at its start; an AI that heard nobody is dialled again

- The dial-in resolver (I1), KM2's roomName and M1's join.roomName name the room Meet uses (the Kamo Meet provider's own room, else the typed name cleaned the...

Kamo·10h ago
FixMediaService

OAuth return URLs accept both platform consoles; webinar cancel links keep the page that exists

kamouniverse.com is now the platform's primary apex (kamo-shared-library 0e8cf90f): OrgLinkHosts falls back to it, and ROOT_PREFERENCE makes it the platform org...

Kamo·10h ago
FixSecurityService

Edit, like and delete one post or note by its own id, never the whole stream

A feed, the organization's (the Clubhouse) or a lead's notes, is ONE POST session and every post or note is a message in it, so every item the feed lists carrie...

Kamo·10h ago
FixKlusterServices

Never ban k3m1 — its node network joins the fail2ban allowlist

FreePBX runs with hostNetwork on k1m1. A pod on k3m1 reaches it SNATed to k3m1's InternalIP, 10.0.50.1, which none of the [DEFAULT] ignoreip ranges covered (the...

Kamo·10h ago
FixKlusterServices

A lone call waits five minutes for company, not thirty seconds

Jigasi hangs up a call that nobody else joins within JIGASI_JVB_TIMEOUT (the image's default 30 s): Jicofo invites a participant only once there are two. An AI ...

Kamo·10h ago
FixSecurityService

SPF advice recognises kamouniverse.com; the brand's aliases are reserved on both apexes

SPF: kamouniverse.com publishes the same record as spf.kamocrm.com (v=spf1 ip4:47.181.8.84 mx -all), so a customer who wrote include:kamouniverse.com has alread...

Kamo·10h ago
FixSecurityService

Platform fallbacks name the primary apex, not a kamocrm.com literal

Four places kept their own "kamocrm.com" literal as the platform host they fall back to, so they could never follow the brand to kamouniverse.com. Each now read...

Kamo·10h ago
Fixkamo-shared-library

A quote's letterhead falls back to the primary platform apex

QuoteMapper kept its own "kamocrm.com" literal as the theme host of last resort, so a quote for an organization with no live domain still named the old brand's ...

Kamo·10h ago
Fixkamo-marketing

Send Careers and the LLM registration link to kamouniverse.com

kamouniverse.com is now the platform's primary apex. Two links on the legacy www.kamocrm.com site that send visitors into the platform, and carry nothing tied t...

Kamo·10h ago
FixVOIPService

Read JustCall voicemail with INCOMING_VOICEMAIL, and file each under its agent

JustCall answers call_type=VOICEMAIL with 400 ("call_type must be one of ... INCOMING_VOICEMAIL"), so not one of the 241 voicemails on the JustCall account ever...

Kamo·10h ago
FixKlusterServices

Docs trusts api.kamouniverse.com as a WOPI host

A member signed in on internal.kamouniverse.com (the platform's primary apex since 2026-09-28) opens documents with **************** DocsService takes the last ...

Kamo·11h ago
FixDocsService

Docs trusts api.kamouniverse.com and serves docs.kamouniverse.com

A member signed in on internal.kamouniverse.com (the platform's primary apex since 2026-09-28) opens a document with **************** because DocumentController...

Kamo·11h ago
FixKlusterServices

Kamouniverse.com refuses unknown recipients at RCPT instead of bouncing them

kamouniverse.com, the platform's primary apex, is an alias domain of kamocrm.com: every <x>@kamouniverse.com is the <x>@kamocrm.com mailbox. It was mapped by a ...

Kamo·11h ago
FixKlusterServices

The desktop-ws route reaches only the terminal socket, not every SecurityService path

**************** matched PathPrefix(`/desktop-ws`) on internal.* and stripped the prefix, so **************** reached ANY SecurityService path from the internet...

Kamo·11h ago
FixEmailService

KamoMail binds only an address on a domain the organization holds; the provider needs its right

The cross-tenant read path parked as SP99-T1-f. A self-registered organization could point its provider at its own IceWarp or Exchange (PUT /api/email/provider ...

Kamo·11h ago
FixSecurityService

One organization can no longer take another's <alias>.kamocrm.com routing

Any member of an organization with no root could add the root victim.kamocrm.com (POST /api/security/domains checked no right). Listing the domains then self-he...

Kamo·11h ago
FixSecurityService

A lead's notes stream, addressed by its guid, keeps the lead's own read rule

Every note on a lead now sends the lead stream's guid on /topic/media/feed/<orgId> (SP99-T3), which any member of the organization may subscribe to. The guid-ad...

Kamo·11h ago
FixKlusterServices

A caller an AI member transfers rings the person from its own channel

FreePBX sends every blind transfer to its global TRANSFER_CONTEXT, from-internal-xfer-dest, which dials the target through a Local channel. A Local channel take...

Kamo·12h ago
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·13h 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