KamoCRM

Live Change Log

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

19,290
Total Changes
7,053
Features
5,846
Fixes
30
Projects
Filter by project
All Projects19,290AIService291APIService184BillingService169ConversionService125DaemonService153DocsService284ESigService106EmailService678InitializerService359KBService167KlusterServices783MCPGatewayService283MediaService644RAGService80SecurityService2,131TranslateService62VOIPService279VectorService11kamo-apps31kamo-asterisk-support32kamo-capcha17kamo-capcha-widget4kamo-internal9,024kamo-login362kamo-marketing642kamo-nowww20kamo-register224kamo-shared-library1,951kamo-signer-monorepo73kamolos121
Filter by type
All TypesBuild23CI528Chore810Docs3,305Feature7,053Fix5,846Other1,009Performance176Refactor286Revert23Style46Test184Upgrade1
September 23, 2026
Featurekamo-internal

The member who caused a notification opens their card from it

"Dana Reyes dealt you in", "Weekly sync · Dana Reyes", an unread-chat card whose body is the sender: EmailService (29cb21e) now sends actorMemberId (as text) an...

Kamo·1mo ago
Featurekamo-shared-library

The Notes app is "Notes & Checklists"

The Notes app holds checklists as well since 2026-09-23 (steps ticked off as they are done, a step that waits until the steps before it are finished, a checklis...

Kamo·1mo ago
FeatureMediaService

The Hold'em invite and the meeting reminder say who they are from

MemberNotificationClient.raise gains an overload carrying actorMemberId/actorName (the id sent as text; the old signature is unchanged and sends neither). Holde...

Kamo·1mo ago
FeatureEmailService

Who caused a notification travels with it, so the bell can draw them as a member

- NotificationRequest gains actorMemberId/actorName; the old constructor stays for every producer that predates them. - raise() keeps the pair only when both ...

Kamo·1mo ago
Featurekamo-shared-library

A notification can say whose doing it is

MemberNotification gains ACTOR_MEMBER_ID (INT8) and ACTOR_NAME (255): the member who caused it - who dealt you in, whose meeting is starting, who wrote to you -...

Kamo·1mo ago
FeatureInitializerService

The Notes plan feature is "Notes & Checklists"

The Notes app holds checklists as well since 2026-09-23 and is called "Notes & Checklists" everywhere it is named. The pricing page's comparison chart takes its...

Kamo·1mo ago
Featurekamo-internal

A switched-to mailbox stays live, and the search box is polished

Live updates. The page asks EmailService to watch the mailbox it has open when it is not the member's own (/app/email/watch, re-sent after a reconnect, stopped ...

Kamo·1mo ago
Featurekamo-internal

Audio lessons — upload a recording, and learners can really navigate it

Authors (/hr/training course editor) - "Upload file" on every slide, beside "Choose media": audio (MP3, M4A, AAC, WAV, OGG/Opus, FLAC), video or an image, thr...

Kamo·1mo ago
FeatureKlusterServices

A way to actually build the golden image

build-golden-image.sh said "Run by CI (see ../../.forgejo/workflows/)". No such workflow was ever written. It needs libguestfs, qemu-img and virt-customize, non...

Kamo·1mo ago
FeatureConversionService

Audio — a waveform thumbnail at upload, and peaks and transcripts on demand

An uploaded audio file fell through to the Docs PDF path, which cannot open one, so every audio upload ended "Conversion failed" with a blank library tile. Audi...

Kamo·1mo ago
FeatureDocsService

Audio slides — media metadata, and learners play media through their assignment

An audio slide's navigation lives in media_meta_json (duration, waveform peaks, chapters), which the editor writes and the player reads back verbatim. It is sav...

Kamo·1mo ago
Featurekamo-shared-library

Audio uploads pass the MIME check, and slides carry media metadata

Every audio upload but MP3 was refused as a MIME mismatch. An upload is accepted only when the browser's type and Tika's sniff resolve to the same ImageMimeType...

Kamo·1mo ago
Featurekamo-internal

A tool window's full title, however it is cut short

A title bar is one line, and a conversation, an email or ticket subject or a terminal's directory is regularly longer than the room it gets — the member could o...

Kamo·1mo ago
FeatureInitializerService

Put the app in the entitlement catalog, add-on only

**************** asserts every sold app is categorised and sits somewhere on the tier ladder, because an app the catalog does not describe lands nowhere on the ...

Kamo·1mo ago
Featurekamo-internal

Human/AI member accounts, phonetic names, job title and department requirements

Add Member / Add Team Member - A first "Person or AI" section: Human Intelligence (default) or Artificial Intelligence as two keyboard-operable choice cards. ...

Kamo·1mo ago
FeatureSecurityService

Human/AI members, phonetic names, role requirements; fix position saves wiping security

Members - Create, create-team-member and bulk-create accept `intelligenceType`, `namePhonetic` (new accounts only, like the name), and for AI accounts `aiSupe...

Kamo·1mo ago
Featurekamo-shared-library

Intelligence type, phonetic names, AI supervision, job title/department requirements

Members: `Member.intelligenceType` (HUMAN | ARTIFICIAL, STRING, defaults HUMAN on every construction path and in the column), `aiSupervisorMemberId` (plain id —...

Kamo·1mo ago
Featurekamo-internal

The nav option, the settings section, and the storage figure

A member's own Linux computer, opened from the top bar. The app (ServiceType 37) and its three rights landed in the shared library; this is the half people see....

Kamo·1mo ago
Featurekamo-internal

Checklists in the Notes app — prerequisites, stickies, home panes and the calendar

A note is memory; a checklist is work. /notes now has two halves — Notes and Checklists (?view=checklists) — and a checklist is its own record (/api/checklists,...

Kamo·1mo ago
FeatureAPIService

Forward /api/checklists to KBService

Checklists live in the Notes app and are served by KBService beside the notes themselves; without this route the whole feature answers 404 at the gateway.

Kamo·1mo ago
FeatureKBService

The checklist API, with prerequisites the server enforces

/api/checklists: list, get, create, update, delete, duplicate, reset, clear-done, sequence ("do in order"), clear links, and per task add, edit, tick/untick, se...

Kamo·1mo ago
Featurekamo-shared-library

Checklist and ChecklistItem entities, repository and DTOs

Checklists are the Notes app's second record type: work to get through, whose tasks can wait on other tasks. Three tables — checklists, checklist_items and chec...

Kamo·1mo ago
FeatureSecurityService

The browser-facing surface, and the second Guacamole gateway

SecurityService is the trust boundary for Hosted Computers. It holds the session, the rights and the org chart; ComputeService holds the Kubernetes credentials ...

Kamo·1mo ago
FeatureEmailService

A member can put a checklist on their calendar, once

Checklists live in KBService and the calendar owns only WHEN, so a scheduled checklist is an ordinary member event carrying sourceType CHECKLIST, the checklist ...

Kamo·1mo ago
FeatureAPIService

Forward the Hosted Computer agent path, and only that path

/api/hosted-computers/agent/** -> ComputeService. A Hosted Computer's network policy denies the cluster entirely — no database, no service, not even cluster DN...

Kamo·1mo ago
Featurekamo-shared-library

One query for an organization's whole reporting graph

findMemberAndManagerIds returns every (memberId, managerId) edge in one organization, for Hosted Computers' ACCESS_SUBORDINATE_COMPUTERS right — which reaches t...

Kamo·1mo ago
Featurekamo-internal

A social inbox's quote of an older message names its author with their card

The quote now takes its author from the server (@kamo/chat-core's quote.senderMemberId), which withholds a social contact's id since mediaservice ceee73e — a co...

Kamo·1mo ago
Featurekamo-internal

The card shows the member id to those who manage members

HR and support read a member's id off a tooltip on the HR rosters, which the member card replaced (the tooltip sat where the card opens). The card's details now...

Kamo·1mo ago
Featurekamo-shared-library

The app, three rights, tier/state enums and the entities

ServiceType.HOSTED_COMPUTERS at id 37, TESTING rather than COMPLETED. The stage is carrying weight here rather than describing progress: AppCatalogService resol...

Kamo·1mo ago
Featurekamo-internal

A reply to an older message names its author with their card too

Moves @kamo/chat-core to 0.1.19, whose reply quote carries senderMemberId: the server's parentSenderMemberId when it sent one (null for a web-chat visitor, whos...

Kamo·1mo ago
FeatureKlusterServices

Per-org VM islands, suspend-to-disk, and a white-labeled golden image

A member's own Linux computer, running as a KubeVirt VM in its organization's namespace and opened from the browser. Separate from desktop/ in every way that ma...

Kamo·1mo ago
Featurekamo-shared-library

Let a caller resolve a MediaObjImg by the Img id alone

DocsService's imaging endpoints (download/stream/list/delete) know an Img's id but have no reason to hold the MediaObj it was attached to — until they need to h...

Kamo·1mo ago
FeatureDaemonService

Fold the lead ledgers every 30 s and recount them nightly; the job trigger needs the cluster secret

The lead ledgers (securityservice create_lead_ledgers.sql, applied 2026-09-22) replace COUNT(*) over a 796k-lead pool and over lead_credits with maintained tota...

Kamo·1mo ago
Featurekamo-internal

The card on reply quotes, hand histories, ticket events and bug-thread authors

The last four surfaces that named a member with nothing to open, now that MediaService sends the ids (fa25989): - Reply quotes: the quoted author's name opens t...

Kamo·1mo ago
September 21, 2026
Featurekamo-internal

Show JustCall callback URL before credentials exist

Generates a phone-server UUID when JustCall is selected and shows the webhook URL immediately. That same id is sent on create so the URL the member pasted into ...

kamo·1mo ago
FeatureVOIPService

Pre-assign JustCall phone server id for callback URL

The new-phone form generates a UUID before create so the member can paste the webhook callback URL into JustCall while requesting API credentials. Create accept...

Kamo·1mo ago
FeatureVOIPService

Serve JustCall callback URL for phone server setup

Adds GET /api/voip/setup so the settings UI can show the exact per-instance webhook URL without hardcoding the deployment host.

Kamo·1mo ago
Featurekamo-internal

Show JustCall webhook callback URL on new-phone setup

Surfaces the per-instance callback URL on the JustCall new-phone and overview tabs so members know what to give JustCall when configuring APIs and webhooks. The...

kamo·1mo ago
September 20, 2026
Featurekamo-marketing

Use full PNG logo that floats over the preview banner.

Replace the SVG wordmark with kamocrm-logo-full-v4 so the mark extends above the red strip and below the nav bar.

Kamo·1mo ago
September 18, 2026
Featurekamo-internal

The card on the deliverability history's "who"

EmailService now sends the member behind each change in an address's opt-out history (actorMemberId, text). On Settings → Email → Deliverability a colleague's n...

Kamo·1mo ago
Featurekamo-internal

The card on email aliases and shared-mailbox access

EmailService now sends the member ids on aliases and shared-mailbox access as text. As JSON numbers they were rounded past 2^53, so these tabs matched nobody on...

Kamo·1mo ago
FeatureMediaService

Quotes, hand histories, ticket events and bug threads send the id a member card needs

Four surfaces showed a member by name with no id beside it, so the console's member card had nothing to open. Each now sends the id as TEXT next to the name it ...

Kamo·1mo ago
FeatureEmailService

The deliverability history names the member behind each change

Settings → Email → Deliverability shows an address's opt-out history with who made each change, but HistoryView sent only the actor's name, so the page could no...

Kamo·1mo ago
Featurekamo-internal

The card on the opt-out list's "last changed by"

EmailService now sends the member behind each address's last change (lastActorMemberId, text). The list cuts their name out of the "last changed by" sentence (a...

Kamo·1mo ago
FeatureEmailService

An opt-out row carries the member behind its last change

The opt-out list named who made each address's last change (lastActorName) but not who they are, so the settings page could not open their member card. Each row...

Kamo·1mo ago
Featurekamo-internal

The card on the people the servers now name — document history and shares, careers, the account's primary member, a group seat's manager

Wires the ids the services now send: - Document history (DocManager's changes and downloads, the marketing material drawer's history): the member by name (mem...

Kamo·1mo ago
FeatureBillingService

A group seat's coverage carries its manager's member id

GET /api/billing/self/coverage named the billing group's manager (managerName) but not who they are, so the member's plan page could not open the manager's memb...

Kamo·1mo ago
Featurekamo-internal

The card on admin, leads and settings — history values, reservations, mailboxes, audit logs, the profile hero

Every remaining member these screens show opens the member card. Ids are the strings the data carries, each checked on the server's origin/main. - History (Ent...

Kamo·1mo ago
Featurekamo-internal

The card on home boards, HR, KB, documents and e-sign — face and name as one door

The owner's two: the Achievement Leaderboard and Affiliate Scoreboard widgets had the card on the 20px face only. MemberFace (BoardChrome) now takes the row's n...

Kamo·1mo ago
Featurekamo-internal

The card on chat, support and the dock's windows — names beside faces, and the lines that name people

Where a face already opened the member card and the name beside it did not, and on the lines that name people. Every id is the string the data already carries, ...

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