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
August 25, 2026
Otherkamo-internal

Tighten the screenshot drop hint

"Drag images here, paste from your clipboard, or click to browse" becomes "Drop image, paste from clipboard, or click to browse" — the three things you can do, ...

kamo·1mo ago
Fixkamo-internal

Close the dead space under the lead grid's pager

The pager sits at the bottom of the grid Card's CardContent, and CardContent ships `&:last-child { padding-bottom: 24px }` of its own. That selector carries a c...

kamo·1mo ago
Featurekamo-internal

Fit the report form in the window without scrolling

The form was about 120px taller than the 460x690 window's content area, so every new report opened on a scrollbar. Six changes, each of which also reads better ...

kamo·1mo ago
Docskamo-internal

Implementation plan for quiet hexheads and the notification spine

33 tasks across five phases whose order is load-bearing: the schema must be run before any service maps a column, the library published before the services buil...

kamo·1mo ago
Fixkamo-internal

Say plainly what the domain field is for

The hint explained the field in terms of the hosts it produces — internal.<domain> for the workspace, login.<domain> for sign-in — which means nothing to somebo...

kamo·1mo ago
Featurekamo-internal

A domain is no longer required to create an org

Requiring it here was the wizard's half of the rule this effort removed: a customer could not finish creating an org without naming a domain, and then could not...

kamo·1mo ago
Docskamo-internal

Design for quiet hexheads and the per-surface notification spine

A minimized chat window re-opens itself on every arriving message. The hexhead should absorb it instead — count, thump, stay put — and only a conversation with ...

kamo·1mo ago
Fixkamo-internal

Close five gaps in the website brand suggestions

Five things found reading the first cut back, all of them real. The "Added below" badge lied. It tracked only which card had been clicked, so hitting Remove on...

kamo·1mo ago
Featurekamo-internal

Report form becomes a tool window; filter and status changes

REPORT FORM -> POPUP TOOL WINDOW. A modal was the wrong shape for the job. Reporting a defect means describing something you were just looking at, and a modal i...

kamo·1mo ago
Featurekamo-internal

Suggest logo, colours and backgrounds from the member's site

The Basics step already asks for a website. This reads it and offers what it finds on the three branding steps that follow, as suggestions the member can take, ...

kamo·1mo ago
Fixkamo-internal

Enter as System Member no longer needs your own membership

The button was disabled by canEnterOrg, which asks whether the VIEWER holds a usable membership — so it was greyed out for exactly the orgs it exists to reach, ...

kamo·1mo ago
Featurekamo-internal

File a bug or an enhancement

The type leads the form, because it changes what the rest of it is asking: 'What happened?' for a defect, 'What would you like to see?' for a request. Two cards...

kamo·1mo ago
Docskamo-internal

Plan the website brand scan implementation

kamo·1mo ago
Docskamo-internal

Design the website brand scan

Where the /network/create Website field turns into logo, colour and background suggestions on the three branding steps. Records two things that are easy to get...

kamo·1mo ago
Featurekamo-internal

Remind the dispatched session to push its work

Matches the server copy in SystemBugAiDispatchService, which is what the dialog actually shows once the preflight lands — this one covers the moment before it. ...

kamo·1mo ago
Featurekamo-internal

Tell people a web alias is taken while they are typing it

The create wizard is eleven steps long and the alias was only validated for FORMAT locally — whether anyone already held it was discovered when the form was sub...

kamo·1mo ago
Docskamo-internal

Correct what the KamoDesktop SSO token's lifetime actually is

The comment called the link "short-lived, single-use" and "5-minute", which is what caused the token expiry to be set as if it were a URL redemption window. It ...

kamo·1mo ago
Featurekamo-internal

Add the System Bugs tab

Members report defects in the platform with screenshots and the sites they the dev machine. A tenant sees only its own organization's bugs and the platform org...

kamo·1mo ago
Featurekamo-internal

Show a member's photo on the scoreboard, not their initials

The face now comes from the same directory index every other member list on the platform reads (useMemberProfiles), so a person's picture on the scoreboard is i...

kamo·1mo ago
Featurekamo-internal

Show Google's OAuth callback URL on its registration card

An operator filling in the Google Workspace registration had nothing telling them what to put in the Google Cloud console's Authorized redirect URIs, and the Re...

kamo·1mo ago
Docskamo-internal

Plan the System Bugs build across six repos

Screenshots turn out to need no table: an Img row already carries an assoc type plus an assoc object id, and imgs has no CHECK constraint on assoc_id, so append...

kamo·1mo ago
Featurekamo-internal

Manage a custom domain from Company settings

A domain used to be the doorway into an organization: DNS had to be configured before anyone could sign in at all, which is why /setup/dns was reached from the ...

kamo·1mo ago
Docskamo-internal

Design the System Bugs tab and its AI dispatch path

vscode:// URI handler opens a conversation in the window sage already has open, and coderProcessWrapper carries model and effort, which the URI cannot. Also rec...

kamo·1mo ago
Docskamo-internal

Record SP1 as complete, and the six things the plan got wrong

Keeps the reasoning rather than just ticking boxes — the top-level-org skip and the PLANNING-stage regression are both the kind of mistake that would be made ag...

kamo·1mo ago
Featurekamo-internal

Render the app tree, and confirm what a parent switch-off takes

Children now sit under their parent in the Apps & Features list, each with its own switch. Nesting is expressed by ORDER plus an indent rather than a nested con...

kamo·1mo ago
August 24, 2026
Featurekamo-internal

The Affiliate Sales Scoreboard widget

One grid column wide and two rows tall: the ten people in the organisation bringing in the most through their tracking links, over today, this month, this year ...

kamo·1mo ago
Stylekamo-internal

Restore CRLF on the two theme files

Both files are uniformly CRLF and my previous commit rewrote them through Python in text mode, which reflowed every line: Theme.tsx showed 237 changed lines and...

kamo·1mo ago
Fixkamo-internal

Paint the branding of the org in the tab, not the host

getThemePath() derived the theme base from window.location.hostname. That answered the right question while every organization had a hostname of its own — and f...

kamo·1mo ago
Fixkamo-internal

Clear the cloned session in the enter-as tab

Entering an org opens a tab with window.open('', '_blank') and points it at /validate. That was cross-origin until now, so nothing was shared. It is same-origin...

kamo·1mo ago
Chorekamo-internal

Regenerate the ServiceType mirrors after the stage correction

The five pre-existing commerce verticals are COMPLETED, EHR is PLANNING.

kamo·1mo ago
Fixkamo-internal

Read the session from the tab, not the shared cookie jar

46 client modules read the *** id out of document.cookie and sent it as X-***-Token. sessionStorage is per-TAB; a cookie is per-ORIGIN. While every organization...

kamo·1mo ago
Fixkamo-internal

The scheduled-support presenter picker offered nobody

The Presenters tab dropdown was empty for every organization, and always had been. GET **************** answers with { teamMembers, total }; the tab read data.m...

kamo·1mo ago
Featurekamo-internal

Mirror the six commerce child apps, and stop the mirrors drifting

Both TS mirrors are now GENERATED from ServiceType.java rather than hand-maintained. They had drifted badly from Java and from each other: stale "RAG integratio...

kamo·1mo ago
Docskamo-internal

Task 7 needed no new migration, and top-level orgs must be included

The app-tree backfill turned out to already exist as **************** restricted to isGated() verticals. Dropping that restriction is the whole change. Records...

kamo·1mo ago
Featurekamo-internal

One scrollbar, three times as wide, down every conversation

The bar beside the messages was 8px in the member chat and SMS, 6px in support tickets and social, and in the AI chat it was nothing at all: that list declared ...

kamo·1mo ago
Fixkamo-internal

Give /api/org/current the domain the client requires

internal.kamocrm.com failed to render with "Invalid organization data: missing 'id' or 'domain'". Organization.fromJSON refuses a record without a domain, and t...

kamo·1mo ago
Fixkamo-internal

Move jump-to-newest in with the toolbar's other actions

Search now owns the whole left track of the toolbar, because the empty part of that track is exactly the room the field opens into. The scroll-to-bottom control...

kamo·1mo ago
Chorekamo-internal

Refresh the favicon and drop the unused blueleven logos

public/favicon.ico now carries 48x48 and 32x32 layers instead of 32x32/16x16. The five logo-blu*/logo-blueleven* PNGs are referenced from nowhere in the app, so...

kamo·1mo ago
Featurekamo-internal

The toolbar's search is a glyph that opens into a field

The member chat carried a permanent search box across the top of the window — the width of the whole toolbar, spent on a control that is empty almost all of the...

kamo·1mo ago
Fixkamo-internal

A sent message animates in once, not twice

The message list keyed each row on the message id, and a sent message's id changes exactly once — the optimistic row is appended under a local id, and the STOMP...

kamo·1mo ago
Fixkamo-internal

Name rooms after the org id, not the hostname

getOrgToken() took the first label of the current host, and its own comment said why: "so identically-named rooms cannot collide across orgs". On the shared hos...

kamo·1mo ago
Featurekamo-internal

Land inside a newly created org instead of at DNS setup

Creating an org routed the creator to /setup/dns, and the reason was real: entering meant an OTK redirect to internal.<new-domain>, and a brand-new org has no D...

kamo·1mo ago
Docskamo-internal

Implementation plan for SP1, the app catalog parent/child tree

12 tasks across kamo-shared-library, KamoInitializerService, SecurityService, MediaService, VOIPService, kamo-internal and the translation dictionary. Ordering...

kamo·1mo ago
Docskamo-internal

Design the EHR/EMR vertical and the parent/child app catalog

Two specs from the pre-build analysis of ~30 repos and the 2026 ambulatory EHR market. The program design records the six decisions that bind every sub-project...

kamo·1mo ago
Featurekamo-internal

Make an org without a domain enterable

Entering an org meant navigating to **************** With no domain that URL rendered as the literal **************** so Enter was disabled and owners were rout...

kamo·1mo ago
Featurekamo-internal

Write a scheduled-support description as rich text

The description on **************** was a three-row textarea. It is the /kb/new writing surface now, minus pictures and the media library — those upload into KB...

kamo·1mo ago
Fixkamo-internal

Take the chat-core that stops a sent message showing twice

@kamo/chat-core 0.1.6. The conversation reducer now adopts the pending optimistic row when the member's own message comes back over STOMP, instead of appending ...

kamo·1mo ago
Featurekamo-internal

A file may be dropped anywhere on a chat window, not only on the input strip

The drop target was the composer surface alone — a few dozen pixels at the bottom of a window that is otherwise all messages. A screenshot let go over the conve...

kamo·1mo ago
August 23, 2026
Fixkamo-internal

Stop offering Business the add-ons it already includes

Choosing Business still presented video conferencing, the AI assistant, the HR system and e-signatures as things to buy, even though the plan bundles all four. ...

kamo·1mo ago
Fixkamo-internal

Let the SSL check lower the flag, not only raise it

checkDns only ever latched sslConfirmed to true. A domain whose stored flag was set under the old any-one-host rule therefore kept a green SSL card and an unloc...

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