KamoCRM

Live Change Log

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

18,399
Total Changes
6,534
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,399AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService621InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,996TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,694kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,826kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,534Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
September 24, 2026
Fixkamo-internal

A socket's one-time key is not a sign-in hand-off

Since 46191c47 every browser WebSocket authenticates with ?otk=<key>. The EmailService sockets connect through the same-origin /email-ws rewrite, so they pass t...

Kamo·1mo ago
Fixkamo-internal

New mail shows on /messages as soon as the badge counts it

The badge and the list hear the same socket, and EmailService relays every arrival (verified on NATS: email.changed ARRIVED from both pods, then the unread snap...

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