Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

17,963
Total Changes
4,631
Features
4,553
Fixes
32
Projects
Filter by project
All Projects17,963AIService112APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService382InitializerService300KBService74KlusterServices547MCPGatewayService43MediaService462RAGService61SecurityService1,525TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,588kamo-login319kamo-marketing588kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,325kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs228Feature4,631Fix4,553Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
September 11, 2026
Featurekamo-marketing

Let a reader send the seat-fee article to someone they know

A "pass it on" form at the foot of **************** reached from a chip at the top and a line after the seven questions. The reader names up to three people and...

Kamo·23h ago
FeatureEmailService

Email an article to someone, as the platform org, with a working opt-out

A visitor on the marketing site can send the seat-fee article to up to three people. POST /api/internal/article-share (X-Internal-Auth, like every other /api/in...

Kamo·23h ago
Featurekamo-marketing

Put every page in /sitemap.xml itself, and list pages only in the languages they have

/sitemap.xml was an index, so opening it showed 79 file names rather than the site's pages. - /sitemap.xml is now one <urlset> with every page: 18,700 of them,...

Kamo·1d ago
Featurekamo-internal

A department's Select checks the members it is showing

The Directory's per-department Select used to switch the whole list into select mode with nothing checked, and read "Done" until pressed again. It now checks ev...

Kamo·1d ago
Featurekamo-marketing

Public service announcement on who keeps software seat fees

New page at **************** explaining, for non-technical owners, how resold white-label platforms work: a flat agency license, per-seat fees the agency keeps,...

Kamo·1d ago
FixSecurityService

An echo of the censored English is not a translation

translatedLocales compared each translation with the English title as stored. The translator is given the censored title (ChangelogSanitizationService masks sec...

Kamo·1d ago
FixSecurityService

The General tab counts what the Organizations tab calls Active

6c8d789 moved the platform overview's organization count onto findAllLive(), which also drops orgs created by synthetic (is_fake) accounts — so the General tab ...

Kamo·1d ago
Featurekamo-marketing

List every page in every language it exists in, and make each page agree

/sitemap.xml listed each page once, as its English URL. The 17,843 changelog entries had no language alternates at all, and every page's own hreflang named all ...

Kamo·1d ago
FeatureKBService

Say which locales each public article is really translated into

The marketing site's sitemap now lists every language version of every help-center, documentation and API-reference article, and each article page names the oth...

Kamo·1d ago
FeatureSecurityService

Say which locales each entry is really translated into

The marketing site's sitemap now lists every language version of every entry, and each entry page names the others as its hreflang alternates. A translation row...

Kamo·1d ago
Featurekamo-internal

Void an organization from Platform -> Configuration -> Organizations

The Organizations tab gains Active and Void sub-tabs, and each organization's drawer a way to void it — or, on the Void tab, to restore it. - Active / Void sub...

Kamo·1d ago
FeatureMediaService

The roster no longer names a voided organization

An organization voided from Platform -> Configuration -> Organizations (orgs.is_active = FALSE) does not exist anywhere but the console's Void tab. findOwnedOrg...

Kamo·1d ago
FeatureBillingService

Active and Void tabs in the platform org directory

The console's Organizations tab now splits into Active and Void sub-tabs. A voided organization is orgs.is_active = FALSE (set by SecurityService's void endpoin...

Kamo·1d ago
Fixkamo-internal

Binders and Uploads read as live buttons in the org's brand

The two tabs looked disabled because they were: a MUI Tab with no <Tabs> parent defaults to textColor="inherit", which draws the whole tab at 60% opacity unless...

Kamo·1d ago
FeatureSecurityService

Void an organization, and let no way in reach a voided one

Platform -> Configuration -> Organizations can now void an organization. The void is orgs.is_active = FALSE; this commit adds the action and makes every way INT...

Kamo·1d ago
Featurekamo-shared-library

A voided organization is left out of every listing and host lookup

Platform operators can now void an organization from Platform -> Configuration -> Organizations. The void is orgs.is_active = FALSE — the flag sign-in and host ...

Kamo·1d ago
Featurekamo-internal

Topic titles in the bar's dropdowns sit on a darker plate of the brand

A menu's own name at its top and every section heading (Support's "Online Support", "Bugs & Enhancements", "Training"; Docs' "Create new") now sit on a rounded ...

Kamo·1d ago
Chorekamo-internal

Rebuild for Doc Manager's "Docs & Files" tab label

No code change. The label comes from kamo-translation-dictionary 649b24cb, which the image build clones into messages/ at build time, so it only reaches the sit...

Kamo·1d ago
Featurekamo-internal

Faces on messages only in conversations of three or more

A face beside every message tells people apart, and between two people the side a message is drawn on already does that - so the corner face now appears only wh...

Kamo·1d ago
FeatureMediaService

The faces answer says how many people are in the conversation

GET **************** now carries `participants`: the console puts a face beside each message only when three or more people are in a conversation, since between...

Kamo·1d ago
Fixkamo-marketing

Order sitemap <url> children as the schema does, and give each chunk one address

The sitemap XSD is a sequence: loc, lastmod, changefreq, priority, then extension elements. The hreflang links were written straight after <loc>, which Google t...

Kamo·1d ago
Featurekamo-marketing

Generate the sitemaps per request, and give every change its own page

/sitemap.xml was a metadata file prerendered at build time, in a container that cannot reach KBService or SecurityService, so every deploy shipped a sitemap wit...

Kamo·1d ago
FeatureSecurityService

Give every public entry an address, and page the list on the server

The public changelog served entries with no identifier, so the marketing site could neither link to one nor list them in a sitemap. Each entry now carries a slu...

Kamo·1d ago
Featurekamo-internal

Every message wears its author's face, on the bubble's corner

In every chat popup tool window - Chat, Support, Exec2Exec, Social, SMS, AI Chat - each message now carries a 16x16 photo that overlaps the bubble's top-left co...

Kamo·1d ago
Featurekamo-internal

The Signature Requests tab, and a colleague's save in the template editor

Signature Requests, between Templates and Common in the Docs manager: every document the collection's templates sent out for signature, in a grid paged on the s...

Kamo·1d ago
FeatureESigService

Signature requests for the Docs manager, with new counts per member

The Docs manager gets a Signature Requests tab: every document a collection's templates sent out for signature, in three buckets by signatures (nobody, some, or...

Kamo·1d ago
FeatureDocsService

A save reaches every colleague with the template open

A save of a template's file told only the member who saved it, so a colleague with the same template open kept placing fields over pages the file had moved on f...

Kamo·1d ago
Fixkamo-shared-library

Count the files a document keeps only as old versions

A category that keeps versions holds every earlier file of a document in img_versions, each on its own content-addressed file. The storage meter, the quota and ...

Kamo·1d ago
FeatureMediaService

A face for every message in every chat window

GET **************** answers, for one conversation, the photo to draw beside each message: everybody on it now AND everybody who ever wrote in it (a roster forg...

Kamo·1d ago
FeatureMediaService

A meeting link in the conversation, always on the platform's Kamo Meet

POST **************** lets either side of an Exec2Exec conversation add a meeting link, behind the same gate as sending a message. The meeting is created as the...

Kamo·1d ago
Featurekamo-internal

Add a meeting link to the conversation - always the platform's Kamo Meet

Both sides of an Exec2Exec window now carry the camera the other chat windows have: Add a meeting link. The meeting is created by MediaService as the PLATFORM o...

Kamo·1d ago
FixDocsService

Sharing a document works again, as someone who can read it

The share dialog sends a document id as a string — an img id is an int64 past 2^53, which a JSON number would round — and createShare cast it to Number. Every s...

Kamo·1d ago
Featurekamo-internal

The desk's filters, faces and presence; an Exec2Exec badge that burns

Interaction Center > Chats > Exec2Exec gets two filters under the sub-tabs: Org Owner (All | Org-less | Org Owner) and Order By (Last Message | Latest Sign In) ...

Kamo·1d ago
Featurekamo-internal

Files and Templates, version history, and versioning settings

Members asked for documents that keep their history the way their organization chooses, and for templates that stand on their own instead of the Originals/Modif...

Kamo·1d ago
FeatureMediaService

Faces on the desk — a client's photo, last sign-in and presence

The desk's roster now carries, for every client, their own photo (users.avatar_id, built on the operator's live theme host — the only one their console loads im...

Kamo·1d ago
FeatureDocsService

Read a template's layer by design version

The version history draws a template's fields over each version's pages. It asked for them through a document version (/{imgId}/{n}/design), and a template's wo...

Kamo·1d ago
Docskamo-internal

Kamo-careers picks up a branding change within a minute

The comment beside the Careers Logo Overlay said the careers site re-reads config.json hourly. It re-reads it every minute since kamo-careers 14c9ddb, which fix...

Kamo·1d ago
FeatureConversionService

Upload a new version of a document

The one way to change a file the document editor cannot open - a PDF above all, which is what most templates are. POST **************** takes the new file, scan...

Kamo·1d ago
FeatureESigService

Saving a template's fields is a version of the template

A template is a document with a layer of fields over it, and a version of it is both halves: its bytes and that layer. Its underlying file's saves already reach...

Kamo·1d ago
FeatureDocsService

Files and templates, edited in place, with the versions each category keeps

A document was two records: the upload, which nothing edited, and one modified copy derived the first time anyone opened it in either editor. The Docs manager s...

Kamo·1d ago
Featurekamo-shared-library

Document versions, and the versioning mode an organization chooses

Documents were two records: the upload, which nothing edited, and one modified copy derived the first time anyone opened it to edit. Members found the pair conf...

Kamo·1d ago
Featurekamo-internal

A Nav Logo Overlay and a Careers Logo Overlay

Behavior & Labeling gains two more logo overlays in the vocabulary the other six use - a token, resolved against the org's own palette: - "Nav Logo Overlay", d...

Kamo·1d ago
FeatureSecurityService

Bake the careers site's logo overlay into config.json

kamo-careers paints the org's logo in its header and has no OrgContext; it reads the theme config.json on the server, the same file login, register and apps tak...

Kamo·1d ago
Featurekamo-shared-library

A logo overlay for the nav rail and one for the careers site

Two more columns in the vocabulary home_logo_overlay established: a token, not a hex, so an org that rebrands keeps an overlay that matches its new colours. Bot...

Kamo·1d ago
Fixkamo-internal

The rim's lead current stays white-hot all the way round

Its gradient was pinned to the hexagon's box rather than travelling with the arc, so for a third of every lap the current was gold on the gold rim and simply va...

Kamo·1d ago
Featurekamo-internal

A minimized Exec2Exec head runs a current of light round its rim

A line to KamoCRM's executives must never sit in the dock looking like one more chat. Its minimized head now carries an energy rim: a gold-to-white-to-sky arc r...

Kamo·1d ago
FeatureMediaService

A conversation reaches the phone

A message on an Exec2Exec line now goes to the recipients' phones as well as their consoles: the customer's phone when KamoCRM replies, every desk member's phon...

Kamo·1d ago
Fixkamo-internal

A window's scrollbars no longer show through the window on top of it

Maximizing a tool window left a column of scrollbar buttons from the window behind it floating in the middle of the pane, and two overlapping floating windows s...

Kamo·1d ago
Fixkamo-internal

MUI text is set in Geist, not Helvetica and Arial

I18nProviders handed the Geist font to createTheme as an overlay, and overlays are merged in after the theme is built. By then MUI has already written its Robot...

Kamo·1d ago
Fixkamo-internal

Every Chats sub-tab fits, with the same gap between each

The Interaction Center's Chats strip gave its seven tabs seven equal shares of the 550px pane, 78px each whatever they said. "Team Members" needs 91px, so it wa...

Kamo·1d ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing