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 24, 2026
FixVOIPService

Only verified RingCentral webhooks are processed; calling needs a seat

The legacy path that processed a RingCentral call or SMS event with no instanceId, trusting the payload's own to-number, is removed together with its 2026-10-13...

Kamo·4d ago
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·4d ago
FixEmailService

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

39829f6 pinned 1.6.2 together with the library bump in db737a54. That bump is reverted: about thirty other services pin 1.6.1, and CI can only resolve the one v...

Kamo·4d ago
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
FixAPIService

KamoAI internal endpoints never leave the gateway

Carves the seven KamoAI internal subtrees (master spec §7 item 13) out of the wildcard forwards, and with them the server-to-server endpoints that predate the p...

Kamo·4d ago
FixKlusterServices

X keeps counting through a sleep, so every resumed computer went straight back to sleep

A member opening their computer got a black tab. The launch was fine, the wake was fine, the resume was fine — and then the machine powered itself off before th...

Kamo·4d ago
Fixkamo-internal

Signature previews show what the email will actually print

**************** drew the live preview and the Header/Signature thumbnails from data that raced itself. It also disagreed with the composer about what a signatu...

Kamo·4d ago
FixSecurityService

Point loan officers at the card they will actually find — Lender credentials

Both the MeridianLink and the Arive 'officer not linked' refusals named cards that no longer exist under those titles.

Kamo·4d ago
Fixkamo-internal

The session is navigated to, not framed — a framed one renders black

The launch screen put the session in a full-viewport iframe so the tab would keep the organization's icon and title instead of Guacamole's. It cannot work, and ...

Kamo·4d ago
Fixkamo-internal

An iPhone photo (HEIC) attaches to a bug report as a JPEG

A HEIC dropped on a bug report was refused with "must be a PNG, JPEG, WebP or GIF image" — the camera-roll format of every iPhone, AirDropped to a Mac as it is....

Kamo·4d ago
Fixkamo-internal

The password dialog passes the launch copy — main has not built since bf1e3312

bf1e3312 made `openHostedComputer`'s launch copy a required argument, and c224e20f, landing beside it, added a second caller in HostedComputerPasswordHost that ...

Kamo·4d ago
FixKlusterServices

A cloud session asks for its task in the terminal

description") unless the account has the interactive cloud backend, which this one does not; given one, it creates the session, prints its task for the cloud se...

Kamo·5d ago
FixEmailService

An attachment with a Content-ID is still an attachment

A PDF sent from the Gmail app had a paperclip on its list row and no download link in the reading pane. The app stamps every attachment with a Content-ID, and t...

Kamo·5d ago
FixKlusterServices

Xrdp was told its session backend was itself, so nothing ever rendered

Opening a computer gave a black screen that never became a desktop. The cause is one unanchored sed in this file: sed -i 's/^port=.*/port=3389/' /etc/xrdp/...

Kamo·5d ago
FixConversionService

A meeting recording no longer passes through heap, and a long one no longer times out

/transcribe read the upload with getBytes() on a 2Gi pod, and a meeting recording runs past a gigabyte. It now copies the spooled upload to the scratch volume a...

Kamo·5d ago
FixMediaService

Stream the recording, and run the summary after commit — it ran inside the upload

Jibri's upload read the whole recording into heap (file.getBytes()) on the pod that also serves chat; a two-hour meeting is over a gigabyte. It is now streamed ...

Kamo·5d ago
FixKlusterServices

Recording had never worked — jicofo never looked for jibri, and jibri never arrived

Four separate faults, each enough on its own to stop every recording: - jicofo had no ENABLE_RECORDING, so the image wrote no `jibri {}` block: it never watc...

Kamo·5d ago
FixKlusterServices

Recreate, and probe the XMPP session — a surge left meetings with no focus for 18h

Every jicofo logs in to prosody as the same full JID, focus@auth.meet.Meet/focus. The maxSurge rollout from 9da0998 runs two of them at once, and prosody answer...

Kamo·5d ago
FixKlusterServices

Two threads rebuilt the initrd at once and destroyed the machine

A computer provisioned, came up, and panicked on its next boot: Run /init as init process Failed to execute /init (error -2) Kernel panic - not syn...

Kamo·5d ago
FixKlusterServices

The restart could land mid-initramfs and leave a computer unbootable

A brand new computer provisioned, came up, reported AWAKE, and ninety seconds later panicked: Kernel panic - not syncing: No working init found. I caused ...

Kamo·5d ago
Fixkamo-internal

Browser WebSockets authenticate with a one-time key, never the session token

The 15 places a hook opens a STOMP/SockJS connection to MediaService (media.<domain>/ws) or EmailService (via the /email-ws rewrite) put the raw 128-char *** se...

Kamo·5d ago
FixEmailService

Accept a short-lived otk on the WebSocket handshake, alongside ***

Same change as mediaservice: kamo-internal is moving the *** session id out of browser JavaScript, off sessionStorage and off every WebSocket URL (`?***=<128-he...

Kamo·5d ago
FixMediaService

Accept a short-lived otk on the WebSocket handshake, alongside ***

kamo-internal is moving the *** session id out of browser JavaScript: it currently sits in sessionStorage and rides every WebSocket URL as `?***=<128-hex id>`, ...

Kamo·5d ago
Fixkamo-internal

A tab's session is a sealed handle — the id never reaches page script

/api/validate is where a tab first learns its session, and it returned the 128-hex *** id for the page to keep in sessionStorage — readable by any script runnin...

Kamo·5d ago
Fixkamo-login

The *** cookie on login.* is HttpOnly, and no log line carries half a session id

/api/login, /api/login/mfa and /api/session/select planted *** with httpOnly:false ("client- accessible for session checks") — but no browser code on login.* or...

Kamo·5d ago
Fixkamo-internal

The session id stops coming back to page script — groundwork for sealed handles

*** was set readable (httpOnly:false) and several responses handed the raw session id to the browser. Page script cannot use a cookie's HttpOnly flag if an endp...

Kamo·5d ago
September 23, 2026
FixKlusterServices

A resumed computer went straight back to sleep

Thirty seconds after the first real resume, from the machine's own log: kamo-hc-agent: idle 13202s >= 1800s — going to sleep PM: hibernation: hibernati...

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

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixTranslateService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixRAGService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixMediaService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixConversionService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixESigService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixDocsService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixDaemonService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixKBService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixBillingService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
FixAIService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·5d ago
Fixkamo-login

Call it the email on their account, not their personal one

The address a work email is pointed at is whatever the user account holds. That can be a work address an administrator set, not only a personal one. The panel n...

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