KamoCRM

Live Change Log

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

18,414
Total Changes
6,545
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,414AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService623InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,999TranslateService62VOIPService265VectorService11kamo-apps27kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,701kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,828kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,545Fix5,540Other1,001Performance174Refactor282Revert23Style45Test175Upgrade1
September 2, 2026
Fixkamo-internal

Give the annotation tools their tooltips back

The five annotation tools in the PDF designer built their tooltip key by interpolating the tool type onto a "tool_" prefix, but the dictionary names those same ...

Kamo·2mo ago
Featurekamo-internal

Ask whether the guests should be told, and how

Adding a guest to an event did not tell them, and the dialog never said so. The only thing that ever wrote to a guest was a reminder — which reaches a colleague...

Kamo·2mo ago
Fixkamo-internal

A committed term is worth what it commits to

The card led with the recurring rate whatever the term, so a 36-month commitment priced at $100 a month showed $100. The deal is $3,600. Where the contract run...

Kamo·2mo ago
Fixkamo-internal

Keep a grid's popups opaque when its body is see-through

Opening Page Size in the doc manager under My Team Member Profile showed the rows reading straight through the open menu. It looks like a z-index bug, and was r...

Kamo·2mo ago
Fixkamo-internal

Give the Reports tab the console's own layout

It shipped as a bare unpadded Box, so the content sat flush against the container edge while every sibling tab pads its root with p:{xs:2,sm:3}. That was the vi...

Kamo·2mo ago
Fixkamo-internal

Stop a message's own controls being cut in half by the window

Reported as the reply arrow and the ⋮ "only half showing" at every view and every zoom level. Geometry, not styling, which is why zooming never helped: the cont...

Kamo·2mo ago
Featurekamo-internal

Decide who sees each report, from Platform Administration

A Reports tab on the Configuration console, gated by MANAGE_REPORTS on the platform spine — which is also, with no further work, a row in the Manage Rights dial...

Kamo·2mo ago
Featurekamo-internal

Give the quote billing choice a screen to live on

The org-wide setting deciding whether a quote is billed each period or in full up front has existed on OrgPOSConfig for some time, and the endpoint that writes ...

Kamo·2mo ago
Featurekamo-internal

Lead with the whole term when the bill is due up front

An org that charges the committed term at signing saw the monthly rate on its own three-year quotes. The quote now carries the basis it was raised under, and th...

Kamo·2mo ago
Fixkamo-internal

Name the remaining twelve switches, and guard the trap that unnamed them

MUI 7 drops `inputProps` on Switch — silently, with no warning and no type error, so the aria-label never reaches the DOM. Nearly every switch in this app puts ...

Kamo·2mo ago
Fixkamo-internal

A search hit reads the same on your own messages as on everyone else's

The highlight inherited the bubble's text colour and drew itself as a 55% wash, and both of those quietly failed in the same place. The member's own messages ar...

Kamo·2mo ago
Fixkamo-internal

Show the one-time setup fee in the option's figures

The card, the live rail and the print preview all led with the option's period total, and the only figure carrying the setup fee — the whole-term contract total...

Kamo·2mo ago
Fixkamo-internal

Give the mail columns back their own scrollbars

The offline-banner fix stacked MessageBrowser's root into a flex-col and moved the three mail columns into a row of their own. That row was `flex flex-1 min-w-0...

Kamo·2mo ago
Featurekamo-internal

Step through every search hit, not only the newest

The search at the top of a chat window marked every occurrence of the query and then scrolled to exactly one of them — the newest — with nothing to say how many...

Kamo·2mo ago
Testkamo-internal

Guard the confirmation on a single-message delete

A member reported deleting the wrong email from /messages: the row's trash icon fired straight through to the API, so one stray click on the right edge of a row...

Kamo·2mo ago
Refactorkamo-internal

Drop the container ref nothing reads

containerRef was declared and attached to MessageBrowser's root element, but containerRef.current is never read anywhere in the file — it has been dead since it...

Kamo·2mo ago
Fixkamo-internal

Give the SEND TO AI switch an accessible name

The switch set its aria-label through `inputProps`, which MUI 7 drops on Switch without a warning — so the label never reached the DOM. The words SEND TO AI bes...

Kamo·2mo ago
Fixkamo-internal

Open Send To AI from the report window instead of dispatching

The SEND TO AI switch handed the report over the moment it was filed. It POSTed a bodyless dispatch, which left SecurityService to choose the instruction, the m...

Kamo·2mo ago
Featurekamo-internal

Pin the well-known folders to the top of the sidebar

Inbox, Drafts, Sent, Junk, Trash and Archive stop moving. They hold that order at the top of the folder list, and everything the member made sits underneath und...

Kamo·2mo ago
Fixkamo-internal

Reach the conversation on screen when it is pages down the list

Switching the navigator to the right tab was only half an answer. The list pages by last activity, 30 rows at a time, and the conversation a member has maximize...

Kamo·2mo ago
Featurekamo-internal

The Report Studio — a library, and one renderer for every report

/reports is a shelf, not a card grid: two hundred identical rounded boxes is a wall to scan, and a row gives a report's name room to be read. Saved views nest u...

Kamo·2mo ago
Fixkamo-internal

Stop the offline banner standing as a column beside the mail

Same defect the search results bar had, in the same container. MessageBrowser's root was a horizontal flex row whose children are the columns of the mail client...

Kamo·2mo ago
Docskamo-internal

Say that the status-label save is a whole set, not a patch

The endpoint's meaning changed underneath this client: a status left out of the list is now a deletion rather than a no-op, which is what lets a label be remove...

Kamo·2mo ago
Featurekamo-internal

The importer, and three things it taught us

Publishes the corpus by driving the real KBService API rather than writing rows -- a direct INSERT skips the version row, the kb.article.published event that is...

Kamo·2mo ago
Fixkamo-internal

Send a cleared status label as a removal, not as silence

Emptying a custom label box and saving did nothing. The save built its payload from the labels that had text in them, so a box the org had just cleared was not ...

Kamo·2mo ago
Fixkamo-internal

Do not claim nothing matched when a filter hid the matches

The empty-list explanation added with the search results bar keyed off the query alone, so it also fired when the search had matched plenty and the Unread or St...

Kamo·2mo ago
Fixkamo-internal

Stop mail search opening a strip down the side of the screen

MessageBrowser's root element is a horizontal flex row whose children are the columns of the mail UI. The search results bar was written as a bottom bar -- bord...

Kamo·2mo ago
Fixkamo-internal

Follow the maximized chat window's tab in the navigator

Maximizing a chat popup left the conversation navigator on whatever tab it was already showing. `visibleRows` drops every row outside the active bucket, so the ...

Kamo·2mo ago
Docskamo-internal

The Report Studio design — Java-defined reports, a generic renderer

Reports are defined as Java classes in kamo-shared-library and rendered by one capability-driven frontend, so adding a report is a new class and nothing else. ...

Kamo·2mo ago
Featurekamo-internal

Choose who a quote names as the customer's contact

The market dialog gains "Quote's Future Contact" under Enable quotes: the lead's assigned agent, a choice made per quote, or one explicit person picked with the...

Kamo·2mo ago
Fixkamo-internal

Stop Send To AI resetting the boxes while they are being typed in

A member filed this against the Send To AI dialog: the description "often resets back to the original description while you are editing it". It reset the instru...

Kamo·2mo ago
Featurekamo-internal

The article corpus, and the pipeline that builds it

307 articles across 16 categories and 29 sections, from the 248 draft articles under Documentation/ plus 59 written here: every category and section landing pag...

Kamo·2mo ago
Fixkamo-internal

A window that raised itself has not been read

The chat unread badge was invisible everywhere — the Chat button, the Interaction Center, the hexhead — and the reason was not the badge. All three read one cou...

Kamo·2mo ago
Featurekamo-internal

Curate an article's related articles

KbRelatedPanel is one component in three places: it curates in the composer and the editor, and reads back on the article view. Adding an article here also adds...

Kamo·2mo ago
Fixkamo-internal

Add the missing form-fillable route, and stop offering ungranted actions

Two defects behind one report: the PDF editor would not open, and delete was offered to a member who may not delete. **The editor.** DocManager posts to /api/d...

Kamo·2mo ago
Fixkamo-internal

Ride down to your own message when you had scrolled up

Sending while scrolled up into the history left the member parked where they were, with their own message appended below the fold. From the seat it looks exactl...

Kamo·2mo ago
Docskamo-internal

Design for the Help Center KB build, related articles, and public wiring

Covers the 248 source drafts under Documentation/, the tree they map to under the existing Help Center article, the new KB_ARTICLE_RELATIONS feature, and the th...

Kamo·2mo ago
Otherkamo-internal

Take the two "could not start" fallbacks out of the source

Both SMS refusal paths quote the server when it gives a sentence and fall back to one of their own when it gives only a machine code. Those two fallbacks were E...

Kamo·2mo ago
August 31, 2026
Fixkamo-internal

Offer the billing term up front, and stop hiding it over Enterprise

Two separate ways this page withheld the choice. The org console HAD a three-term control, but it was tucked into the right of the "Choose plan" heading behind...

Kamo·2mo ago
Fixkamo-internal

Quote the commitment saving in dollars on the plan cards

The discount is a flat $10 a year and $20 on three years, which is how the catalog sets it and how it is advertised everywhere else. Rendered as a percentage it...

Kamo·2mo ago
Docskamo-internal

Say which subscription the launchpad pill's gate is about

"Not already paying" means the VIEWER's own seat — the same question the Plans & billing page answers when it decides whether to offer them one. Worth stating, ...

Kamo·2mo ago
Featurekamo-internal

The running offer, on Plans & billing and on the launchpad

The console quoted list prices while kamocrm.com advertised a third off the same plan, because nothing in kamo-internal could see that an offer existed. It now ...

Kamo·2mo ago
Featurekamo-internal

Sell the three-year term, and stop four copies of the cycle drifting

The billing cycles were typed out by hand in five places. One of them, the plan-pricing editor, offered "BIENNIAL" — a value the server has never had — so choos...

Kamo·2mo ago
Featurekamo-internal

Show the report title in Send To AI, editable

The dialog let an operator edit the instruction and the description but never showed the title, and the title was not in the message either — the session at the...

Kamo·2mo ago
August 30, 2026
Fixkamo-internal

Land the header's Text, Chat and Note buttons on the tab they name

The lead view keeps its tab selection in the URL — `tab` for the main tab, `commsTab` for the Communications sub-tab — and a header quick action sets both: "Tex...

Kamo·2mo ago
Fixkamo-internal

Say why a number could not be opened, instead of an empty dialpad

Opening the SMS tool on a phone number resolves a conversation for it first, and that resolve can be refused — VOIPService answers "no number to text from" with...

Kamo·2mo ago
Featurekamo-internal

Reply to a message, and take the reader to what it answers

MediaService has carried a reply's parent and the quote to draw for it since "send the quote with a reply, not just the pointer"; this is the half that shows it...

Kamo·2mo ago
Fixkamo-internal

Stop offering an edit once somebody else has read the message

Every chat window that draws a MessageBubble — the member chat popups, and the social and ticket conversations that share ChatBox — offered Edit on the sender's...

Kamo·2mo ago
Fixkamo-internal

Darken the xAI mark so it shows on the provider dropdown

Simple Icons ships the xAI glyph filled #FFFFFF, which is its brand color on a dark surface. The AI provider dropdown is white and the app forces light mode, so...

kamo·2mo 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